python zip 压缩
zipfile zip文件操作
引入模块:
import zipfile
zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile类来操作zip文件,下面具体介绍一下:
zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
功能:创建一个ZipFile对象,表示一个zip文件。
参数:
-参数file表示文件的路径或类文件对象(file-like object)
-参数mode指示打开zip文件的模式,默认值为r
r 表示读已经存在的zip文件
w 表示新建一个zip文档或覆盖一个已经存在的zip文档
a 表示将数据附加到一个现存的zip文档中。
-参数compression表示在写zip文档时使用的压缩方法
zipfile.ZIP_STORED 只是存储模式,不会对文件进行压缩,这个是默认值
zipfile.ZIP_DEFLATED 对文件进行压缩
-如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。
ZipFile还提供了如下常用的方法和属性:
ZipFile.getinfo(name)
功能:获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。将在下面 具体介绍该对象。
ZipFile.infolist()
功能:获取zip文档内所有文件的信息,返回一个zipfile.ZipInfo的列表。
ZipFile.namelist()
功能:获取zip文档内所有文件的名称列表。
ZipFile.extract(member[, path[, pwd]])
功能:将zip文档内的指定文件解压到当前目录。
参数:
member 指定要解压的文件名称或对应的ZipInfo对象
path 指定解析文件保存的文件夹
pwd 解压密码
下面一个例子将保存在程序根目录下的txt.zip内的所有文件解压到D:/Work目录:
import zipfile, os
zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'txt.zip'))
for file in zipFile.namelist():
zipFile.extract(file, r'd:/Work')
zipFile.close()
import zipfile, os
zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'txt.zip'))
for file in zipFile.namelist():
zipFile.extract(file, r'd:/Work')
zipFile.close()
ZipFile.extractall([path[, members[, pwd]]])
功能:解压zip文档中的所有文件到当前目录。
参数:
members 默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。
ZipFile.printdir()
功能:将zip文档内的信息打印到控制台上。
ZipFile.setpassword(pwd)
功能:设置zip文档的密码。
ZipFile.read(name[, pwd])
功能:获取zip文档内指定文件的二进制数据。
下面的例子演示了read()的使用,zip文档内包括一个txt.txt的文本文件,使用read()方法读取其二进制数据,然后保存到D:/txt.txt。
import zipfile, os
zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'txt.zip'))
data = zipFile.read('txt.txt')
#一行语句就完成了写文件操作。仔细琢磨哦~_~
(lambda f, d: (f.write(d), f.close()))(open(r'd:/txt.txt', 'wb'), data)
zipFile.close()
ZipFile.write(filename[, arcname[, compress_type]])
功能:将指定文件添加到zip文档中。
参数:
filename 文件路径
arcname 添加到zip文档之后保存的名称
compress_type 压缩方法,它的值可以是zipfile.ZIP_STORED 或zipfile.ZIP_DEFLATED
ZipFile.writestr(zinfo_or_arcname, bytes)
功能:writestr()支持将二进制数据直接写入到压缩文档。
ZipFile.getinfo(name)
功能:返回一个ZipInfo对象,表示zip文档中相应文件的信息。
它支持如下属性:
ZipInfo.filename 获取文件名称。
ZipInfo.date_time 获取文件最后修改时间。返回一个包含6个元素的元组:(年, 月, 日, 时, 分, 秒)
ZipInfo.compress_type 压缩类型。
ZipInfo.comment 文档说明。
ZipInfo.extr 扩展项数据。
ZipInfo.create_system 获取创建该zip文档的系统。
ZipInfo.create_version 获取、创建zip文档的PKZIP版本。
ZipInfo.extract_versio 获取、解压zip文档所需的PKZIP版本。
ZipInfo.reserved 预留字段,当前实现总是返回0。
ZipInfo.flag_bits zip标志位。
ZipInfo.volume 文件头的卷标。
ZipInfo.internal_attr 内部属性。
ZipInfo.external_attr 外部属性。
ZipInfo.header_offset 文件头偏移位。
ZipInfo.CRC 未压缩文件的CRC-32。
ZipInfo.compress_size 获取压缩后的大小。
ZipInfo.file_size 获取未压缩的文件大小。
下面一个简单的例子说明这些属性的意思:
import zipfile, os
zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'txt.zip'))
zipInfo = zipFile.getinfo('doc.doc')
print 'filename:', zipInfo.filename
print 'date_time:', zipInfo.date_time
print 'compress_type:', zipInfo.compress_type
print 'comment:', zipInfo.comment
print 'extra:', zipInfo.extra
print 'create_system:', zipInfo.create_system
print 'create_version:', zipInfo.create_version
print 'extract_version:', zipInfo.extract_version
print 'extract_version:', zipInfo.reserved
print 'flag_bits:', zipInfo.flag_bits
print 'volume:', zipInfo.volume
print 'internal_attr:', zipInfo.internal_attr
print 'external_attr:', zipInfo.external_attr
print 'header_offset:', zipInfo.header_offset
print 'CRC:', zipInfo.CRC
print 'compress_size:', zipInfo.compress_size
print 'file_size:', zipInfo.file_size
zipFile.close()
python zip 压缩的更多相关文章
- Python ZIP压缩
ru=lambda x:x.decode('u8') rp=lambda x:x.replace('\\','/') gb=lambda x:x.decode('gbk') class ZIP: de ...
- python zip压缩文件 并移动到指定目录
需要引入的3个包: import os import shutil import zipfile 1. # 创建zip文件对象your_zip_file_obj = zipfile.ZipFile(' ...
- python zip压缩文件并设置密码
zip -P "123" -r app.zip app压缩文件 密码 压缩后名称 压缩对象名称 def zipDir(dirpath, outFullNa ...
- 用Python写一款属于自己的 简易zip压缩软件 附完成图(适合初学者)
一.软件描述 用Python tkinter模块写一款属于自己的压缩软件.zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile来操作zip文件,具有功能:zip压缩功能,zip ...
- Python 黑客 --- 002 入门级 ZIP压缩文件口令暴力破解机
Python 黑客 入门级实战:ZIP压缩文件口令暴力破解机 使用的系统:Ubuntu 14.04 LTS Python语言版本:Python 2.7.10 V 编写zip 压缩文件口令破解器需要使用 ...
- bzip2 zip 压缩后体积比 0.8:1
1. 对.bz2 后缀文件 跳过不处理 2.逐行同字段的json文件,压缩后大小为原文件的12.81% 测试文件近似认为为逐行json文本数据,没有进行多文件重复测试,没有统计时间: {"u ...
- Python的压缩文件处理 zipfile & tarfile
本文从以下两个方面, 阐述Python的压缩文件处理方式: 一. zipfile 二. tarfile 一. zipfile 虽然叫zipfile,但是除了zip之外,rar,war,jar这些压缩( ...
- python zip函数(11)
一.zip函数描述和使用 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,返回的结果可以直接强转为list列表,这样做的好处是节约了不少的 ...
- Android总结之Gzip/Zip压缩
前言: 做过Android网络开发的都知道,在网络传输中我们一般都会开启GZIP压缩,但是出于刨根问底的天性仅仅知道如何开启就不能满足俺的好奇心的,所以想着写个demo测试一下比较常用的两个数据压缩方 ...
随机推荐
- Python入门之基础day1
一.引子 1. 什么是编程语言? 编程语言就是人与计算机沟通的介质 2.什么是编程? 编程就是人把自己想命令计算机干的事情通过编程语言翻译出来并写到文件里去 为什么要编程? 编程的目的就是为了让计算机 ...
- python 字符编码问题总结
都是计算机存储是二进制0101之类的数字 最早计算机在美国开始的 所以数字和英文之类的占用八位 2的8次方 256可以存储对于英文和数字戳戳有余 每个国家都有自己的编码 中国 gb2312 gbk ...
- TCL自动化之SSH交互式
目前ssh工具很多,但是能够轻松运用到自动化脚本中,可以轻松适配任何环境,满足ssh交互式登录的tcl工具包很少 下面是个人在tcl自动化过程中比较满意的一款自动化脚本 通过使用管道方式分装plink ...
- sig文件制作
一 配置环境变量 将link.exe,pcf.exe,sigmake.exe添加进PATH环境变量(选择“我的电脑” >“属性”>“高级” >“环境变量”>将文件地址添加进“p ...
- Beta阶段成果展示——第八组
Beta阶段成果展示 游戏公网IP:http://119.29.32.204/krad.html(欢迎大家测试!) Beta阶段体现在成果上的工作主要为界面美化,玩家引导,按键封闭等等. 本文将以截图 ...
- Shell 脚本举例
- rpmbuild - 构建 RPM 打包
SYNOPSIS 构建打包: rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [rpmbuild-options] SPECFILE ... rpmbuild {-ta| ...
- django允许外部访问 项目后台不挂断运行
1关闭防火墙 1 service iptables stop 2设置django 1 2 3 4 5 6 7 8 9 10 11 开开启django时,使用0.0.0.0:xxxx,作为ip和端口例如 ...
- Sass函数-数字函数-floor()函数
floor() 函数刚好与 ceil() 函数功能相反,其主要将一个数去除其小数部分,并且不做任何的进位.也就是只做舍,不做入的计算: >> floor(2.1) 2 >> f ...
- Nginx1.6.0+MySQL5.6.19+PHP5.5.14(centos)
一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...