Python zipfile

ZipFile类

ZipFile.close()

在退出程序之前必须调用ZipFile.close()关闭zip文件,否则所做的修改将不会被保存

ZipFile.getinfo(name)

获取zip文件内的文件信息,返回一个ZipFile.Info()对象

1 >>> z = zipfile.ZipFile(os.path.join(os.getcwd(), ‘channel.zip‘))
2 >>> z
3 <zipfile.ZipFile object at 0x7f36e4517050>
4 >>> z.getinfo(‘109.txt‘)
5 <zipfile.ZipInfo object at 0x7f36e5bdd500>

ZipFile.infolist()

获取zip文件内的所有文件,返回一个ZipFIle.Info()对象

# -*- coding: utf-8 -*-
import zipfile

z = zipfile.ZipFile(‘channel.zip‘)
print z.infolist()

for i in z.infolist():
    print i.file_size, i.header_offset, i.filename

#output
#[<zipfile.ZipInfo object at 0x7f299925b050>, <zipfile.ZipInfo object at 0x7f299925b118>,....
#21 0 29.txt
#21 59 100.txt
#21 119 109.txt
#21 179 176.txt

ZipFile.namelist()

返回zip内所有文件的文件名序列

ZipFIle.extract(member, path=None, pwd=None)

以指定的模式解压一个zip文件,member是指定的文件名

1 import zipfile
2 z = zipfile.ZipFile(‘channel.zip‘)
3 z.extract(‘readme.txt‘, path=‘/tmp/test/‘)
4 z.close()

ZipFile.extractall(path=None, members=None, pwd=None)

解压zip文件内的所有文件到当前目录,members默认为所有文件,path默认为当前目录,pwd默认为空

ZipFile.printdir()

列出zip文件内的文件信息,包括文件名,修改时间和文件大小

ZipFile.setpassword(pwd)

设置密码

ZipFile.read(name, pwd)

返回压缩文件中指定文件的二进制数据。把zip文件中的数据分别保存到当前目录下的文件中

 1 # -*- coding: utf-8 -*-
 2 import zipfile
 3
 4 z = zipfile.ZipFile(‘/tmp/example.zip‘, ‘r‘)
 5 for filename in z.namelist():
 6     data = z.read(filename)
 7     file = open(‘read.txt‘, ‘a‘)
 8     file.write(data)
 9     file.close()
10
11 z.close()

ZipFile.write(filename, arcname=None, compress_type=None)

把文件名为filename的文件添加到压缩文件之中,arcname为压缩包里的文件的名字,默认为filename,compress_type为压缩方法,可以是ZIP_STORED,ZIP_DEFLATED

1 # -*- coding: utf-8 -*-
2
3 import zipfile
4 z = zipfile.ZipFile(‘test.zip‘, ‘w‘)
5 z.write(‘read.txt‘, ‘hello.txt‘, zipfile.ZIP_DEFLATED)
6 z.close()

ZipFile.comment

与ZIP文件相关联的注释文本,如果指定了‘a‘或‘w‘模式来创建一个ZIp实例,那么该字符串的长度不应超过65535字节,超过会被截断。

 1 # -*- coding: utf-8 -*-
 2 import zipfile
 3 import re
 4
 5 z = zipfile.ZipFile(‘channel.zip‘)
 6 number = ‘90052‘
 7 zpp = []
 8
 9 try:
10     while number:
11         text = z.read(‘%s.txt‘ % number)
12         number = re.search(‘Next nothing is (\d+)‘, text).group(1)
13         print text
14         zpp.append(number)
15 except:
16     print z.read(‘%s.txt‘ % number)
17
18 print ‘‘.join([z.getinfo(‘%s.txt‘ % p).comment for p in zpp])

ZipInfo类

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_version: 获取 解压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: 获取未压缩的文件大小。

from:http://blog.csdn.net/jgood/article/details/4351911#zipinfo

时间: 2024-10-12 21:20:31

Python zipfile的相关文章

python zipfile使用

the Python challenge中第6关使用到zipfile模块,于是记录下zipfile的使用 zip日常使用只要是压缩跟解压操作,于是从这里入手 1.压缩 f=zipfile.ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False) 创建一个zip文件对象,压缩是需要把mode改为'w',这个是源码中的注释Open the ZIP file with mode read "r",

python zipfile模块 ZIP64

python自带zipfile模块用来读.写zip文件. def zip_dir(dirname,zipfilename): filelist = [] if os.path.isfile(dirname): filelist.append(dirname) else : for root, dirs, files in os.walk(dirname): for name in files: filelist.append(os.path.join(root, name)) zf = zipf

Python zipfile报错问题

最近用Python 来读zip的压缩包 .报一个错误. Python 2.6.6 (r266:84292, Jun 18 2012, 14:18:47) [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> impor

python zipfile 文件压缩和文件

文件压缩 zipfile_obj = zipfile.ZipFile(zipfile_objpath, 'a', zipfile.ZIP_DEFLATED) for dirpath, dirnames, filenames in os.walk(customer_file_path): for file in filenames: zipfile_obj.write(file, zipfilepath) zipfile_obj.close 文件解压缩 f = zipfile.ZipFile(zi

python zipfile &amp; tarfile

压缩 import zipfile zip=zipfile.open('','w') zip.write('') zip.close() 解压 import zipfile zip=zipfile.open('','r') zip.extractall('') zip.extract('filename') zip.close()

3、Ansible配置文件和Inventory文件

如果是用RPM包方式安装的Ansible,那么安装完成后会生成以下文件: /etc/ansible                              ###存放ansible配置文件的目录 /etc/ansible/hosts                   ###ansible Inventory文件 /etc/ansible/ansible.cfg        ###ansible的配置文件 如果是pip安装的Ansible,那么需要手动创建这些文件,也可以从其他地方拷贝. a

Ansible 配置文件详细描述

# config file for ansible -- https://ansible.com/ # =============================================== # nearly all parameters can be overridden in ansible-playbook # or with command line flags. ansible will read ANSIBLE_CONFIG, # ansible.cfg in the cur

ansible配置文件详解

# ansible配置文件配置 配置项介绍 , 配置文件ansible.cfg, 运行playbook时,默认时在yaml文件所在路径寻找,然后再去/etc/ansible/下寻找 [defaults] # 定义默认的hosts文件路径,支持相对路径 inventory = ./hosts # 定义默认扩展库路径,自定义的模块可以放这里 library = ./library #module_utils = /usr/share/my_module_utils/ # 默认的远端节点脚本复制过去后

Python3实现zip分卷压缩

Python实现zip分卷压缩 使用 zipfile 库 查看 官方中文文档 利用 Python 压缩 ZIP 文件,我们第一反应是使用 zipfile 库,然而,它的官方文档中却明确标注"此模块目前不能处理分卷 ZIP 文件",(⊙﹏⊙) 折腾经过 翻遍了Google.CSDN.Stackoverflow等平台均未找到解决方案,最靠谱的是调用外部解压程序实现分卷压缩的功能.但是,如何不依靠外部程序实现这个功能呢?? 于是乎,只能自己慢慢造轮子.看着 ZIP 格式开发商留下的文档 ZI