pythonzipfile教程_Python中的zipfile模块使⽤详解
zip⽂件格式是通⽤的⽂档压缩标准,在ziplib模块中,使⽤ZipFile类来操作zip⽂件,下⾯具体介绍⼀下:
class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
创建⼀个ZipFile对象,表⽰⼀个zip⽂件。参数file表⽰⽂件的路径或类⽂件对象(file-like object);参数mode指⽰打开zip⽂件的模式,默认值为'r',表⽰读已经存在的zip⽂件,也可以为'w'或'a','w'表⽰新建⼀个zip⽂档或覆盖⼀个已经存在的zip⽂档,'a'表⽰将数据附加到⼀个现存的zip⽂档中。参数compression表⽰在写zip⽂档时使⽤的压缩⽅法,它的值可以是zipfile. ZIP_STORED 或zipfile.
ZIP_DEFLATED。如果要操作的zip⽂件⼤⼩超过2G,应该将allowZip64设置为True。
ZipFile还提供了如下常⽤的⽅法和属性:
获取zip⽂档内指定⽂件的信息。返回⼀个zipfile.ZipInfo对象,它包括⽂件的详细信息。将在下⾯ 具体介绍该对象。
fontcreator放大字体ZipFile.infolist()
获取zip⽂档内所有⽂件的信息,返回⼀个zipfile.ZipInfo的列表。
ZipFile.namelist()
获取zip⽂档内所有⽂件的名称列表。
将zip⽂档内的指定⽂件解压到当前⽬录。参数member指定要解压的⽂件名称或对应的ZipInfo对象;参数path指定了解析⽂件保存的⽂件夹;参数pwd为解压密码。下⾯⼀个例⼦将保存在程序根⽬录下的txt.zip内的所有⽂件解压到D:/Work⽬录:
import zipfile, os
zipFile = zipfile.ZipFile(os.path.wd(), 'txt.zip'))
for file in zipFile.namelist():
zipFile.close()
解压zip⽂档中的所有⽂件到当前⽬录。参数members的默认值为zip⽂档内的所有⽂件名称列表,也可以⾃⼰设置,选择要解压的⽂件名称。
ZipFile.printdir()
将zip⽂档内的信息打印到控制台上。
ZipFile.setpassword(pwd)
设置zip⽂档的密码。
获取zip⽂档内指定⽂件的⼆进制数据。下⾯的例⼦演⽰了read()的使⽤,zip⽂档内包括⼀个的⽂本⽂件,使⽤read()⽅法读取其⼆进制数据,然后保存到D:/。
#coding=gbk
import zipfile, os
zipFile = zipfile.ZipFile(os.path.wd(), 'txt.zip'))
data = ad('')
(lambda f, d: (f.write(d), f.close()))(open(r'd:/', 'wb'), data)
python入门教程 非常详细 pdf#⼀⾏语句就完成了写⽂件操作。仔细琢磨哦~_~
zipFile.close()
ZipFile.write(filename[, arcname[, compress_type]])
将指定⽂件添加到zip⽂档中。filename为⽂件路径,arcname为添加到zip⽂档之后保存的名称, 参数compress_type表⽰压缩⽅法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。下⾯的例⼦演⽰了如何创建⼀个zip⽂档,并将⽂件D:/test.doc添加到压缩⽂档中。
import zipfile, os
zipFile = zipfile.ZipFile(r'D:/test.zip'), 'w')
zipFile.write(r'D:/test.doc', 'ok.doc', zipfile.ZIP_DEFLATED)
zipFile.close()
ZipFile.writestr(zinfo_or_arcname, bytes)
writestr()⽀持将⼆进制数据直接写⼊到压缩⽂档。
Class ZipInfo
ZipInfo.filename: 获取⽂件名称。
ZipInfo.date_time: 获取⽂件最后修改时间。返回⼀个包含6个元素的元组:(年, ⽉, ⽇, 时, 分, 秒)
ZipInfopress_type: 压缩类型。
ZipInfoment: ⽂档说明。
<: 扩展项数据。
ZipInfo.flag_bits: zip标志位。
ZipInfo.volume: ⽂件头的卷标。
java怎么读什么意思ZipInfo.internal_attr: 内部属性。
ZipInfo.header_offset: ⽂件头偏移位。
ZipInfo.CRC: 未压缩⽂件的CRC-32。
ZipInfopress_size: 获取压缩后的⼤⼩。
ZipInfo.file_size: 获取未压缩的⽂件⼤⼩。
下⾯⼀个简单的例⼦说明这些属性的意思:
import zipfile, os
zipFile = zipfile.ZipFile(os.path.wd(), 'txt.zip'))
zipInfo = info('doc.doc')
print 'filename:', zipInfo.filename
print 'date_time:', zipInfo.date_time
print 'compress_type:', zipInfopress_type
print 'comment:', zipInfoment
print 'extra:', a
print 'create_system:', ate_system
print 'create_version:', ate_version
print 'extract_version:', act_version
print 'extract_version:', served
print 'flag_bits:', zipInfo.flag_bits
print 'volume:', zipInfo.volume
print 'internal_attr:', zipInfo.internal_attr
print 'external_attr:', al_attr
bat文件执行多条命令print 'header_offset:', zipInfo.header_offset
print 'CRC:', zipInfo.CRC
print 'compress_size:', zipInfopress_size
print 'file_size:', zipInfo.file_size
zipFile.close()
感觉使⽤zipfile模块来处理zip⽂件真的很简单。想当初在.NET平台下,使⽤sharpziplib压缩、解压⼀个⽂件,我花了N多时间,了N多英⽂资源,才写出⼀个能压缩⽂件的demo。⽽现在使⽤Python,通过阅读python⼿册,⼀两个⼩时就掌握了zipfile模块的基本使⽤。哈哈,使⽤Python,真爽!
本⽂原创发布php中⽂⽹,转载请注明出处,感谢您的尊重!
相关⽂章
相关视频
⽹友评论
⽂明上⽹理性发⾔,请遵守 新闻评论服务协议我要评论
⽴即提交
专题推荐独孤九贱-php全栈开发教程
全栈 100W+
主讲:Peter-Zhu 轻松幽默、简短易学,⾮常适合PHP学习⼊门
⽟⼥⼼经-web前端开发教程
⼊门 50W+
unix下载系统教程主讲:灭绝师太 由浅⼊深、明快简洁,⾮常适合前端学习⼊门
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论