当前位置: 首页 > news >正文

网站和系统哪个好做中国商标设计网

网站和系统哪个好做,中国商标设计网,网站建设公司织梦模板,手机网站搭建平台原文链接#xff1a;http://www.juzicode.com/python-tutorial-zip-unzip-zipfile 本文介绍zipfile模块的使用#xff0c;zipfile可以用来解压或压缩zip格式的文档。 1、判断是否为zip格式的文件 使用is_zipfile(文件路径)返回True表示为zipfile模块支持的zip文件#xff…原文链接http://www.juzicode.com/python-tutorial-zip-unzip-zipfile 本文介绍zipfile模块的使用zipfile可以用来解压或压缩zip格式的文档。 1、判断是否为zip格式的文件 使用is_zipfile(文件路径)返回True表示为zipfile模块支持的zip文件否则为不支持的文件。下面这个例子分别判断zip格式和用7zip压缩生成的7z格式的2个文件是否为zip文件 import zipfile print(files.7z is_zipfile():,zipfile.is_zipfile(files.7z)) print(files.zip is_zipfile():,zipfile.is_zipfile(files.zip))运行结果 files.7z is_zipfile(): False files.zip is_zipfile(): True 如果不确定一个文件是否能用zipfile模块操作可以在使用前用 is_zipfile() 检查是否为zip格式的文件。 2、获取zip文件信息、解压文件 2.1、创建ZipFile实例 首先用ZipFile()创建一个文件实例zf传入文件名mode入参默认为读模式mode’r’可以不写。 import zipfile zf zipfile.ZipFile(files.zip) print(type(zf)) 运行结果 class zipfile.ZipFile 2.2、查看zip文件信息 通过namelist()方法可以查看文件清单infolist()方法则返回内部文件的信息列表可以查看文件大小、CRC、文件名称等这里压缩文档files.zip的结构如下图 juzicode.com / VX:桔子code import zipfile zf zipfile.ZipFile(files.zip) print(type(zf)) #查看文件清单 print(zf.namelist()) #查看内部文件信息 for info in zf.infolist():print(info) print(filename:,info.filename) #文件名称print(compress_type:,info.compress_type)#压缩类型print(is_dir:,info.is_dir()) #是否为路径print(file_size:,info.file_size) #文件原始大小 print(compress_size:,info.compress_size) #文件压缩后大小print(CRC:,info.CRC) #crc 运行结果 class zipfile.ZipFile [files/, files/1.txt, files/2.txt, files/3.bmp] ZipInfo filenamefiles/ external_attr0x10 filename: files/ compress_type: 0 is_dir: True file_size: 0 compress_size: 0 CRC: 0 ZipInfo filenamefiles/1.txt external_attr0x20 file_size20 filename: files/1.txt compress_type: 0 is_dir: False file_size: 20 compress_size: 20 CRC: 2536054424 ZipInfo filenamefiles/2.txt external_attr0x20 file_size12 filename: files/2.txt compress_type: 0 is_dir: False file_size: 12 compress_size: 12 CRC: 3281828313 ZipInfo filenamefiles/3.bmp compress_typedeflate external_attr0x20 file_size2847150 compress_size3461 filename: files/3.bmp compress_type: 8 is_dir: False file_size: 2847150 compress_size: 3461 CRC: 1274188157 2.3、解压文件 使用extractall(pathNone, membersNone, pwdNone)方法解压文件。 如果不带path入参默认解压到当前工作目录如果带path参数则解压到path所表示的路径没有该路径还会创建该路径。 import zipfile zf zipfile.ZipFile(files.zip) retzf.extractall() #解压到当前工作目录 print(ret) retzf.extractall(pathE:\\juzicode\\unzip)#解压到指定目录 print(ret) 运行结果显示extractall() 总是返回None。 members参数为 infolist() 返回的ZipInfo实例或者文件名称列表假设知道压缩文档中包含’files/1.txt’,’files/2.txt’则可以指定members[‘files/1.txt’,’files/2.txt’]解压这2个文件或者使用memberszf.infolist()[:2]解压压缩文档中前2个文件 import zipfile zf zipfile.ZipFile(files.zip) retzf.extractall(pathE:\\juzicode\\unzip1,memberszf.infolist()[:2]) print(ret) retzf.extractall(pathE:\\juzicode\\unzip2,members[files/1.txt,files/2.txt]) print(ret) 另外还可以使用extract(member, pathNone, pwdNone)解压member表示的单个文件。 其中path变量的功能和ectractall()一样。 member参数可以用压缩文档中的单个文件名member‘files/1.txt’或者用单个ZipInfo实例memberzf.infolist()[2]这里注意和extractall()的差异在extractall()方法里的members参数用的是列表表示多个文件。 #juzicode.com / VX:桔子code import zipfile zf zipfile.ZipFile(files.zip) retzf.extract(files/1.txt,pathunzip1) print(ret) retzf.extract(zf.infolist()[3],pathunzip2) print(ret) 运行结果 unzip1\files\1.txt #memberfiles/1.txt unzip2\files\3.bmp #memberzf.infolist()[3] extract()方法会返回解压缩文档的名称这点和extractall()有差异。 另外需要注意的是压缩文档可能是来自不同的操作系统也可能是来自不可信的其他来源为了安全考虑压缩文档中某些特殊路径在解压缩后会做特殊处理。比如windows系统的盘符以及linux系统的根目录解压后都会去除。另外如果包含..表示的上一层目录也会去掉而windows下非法的字符会被下划线替代。 3、压缩文件 这里的例子中原始文件结构如下在files目录下包含了3个文件 E:\juzicodetree files /fE:\JUZICODE\FILES1.txt2.txt3.bmp 3.1、write()方法 首先用ZipFile()创建一个文件实例zf传入压缩文件名mode’w’表示要创建压缩文档。 然后使用write()传入文件名称写入压缩文档。 最后用close()关闭压缩文档。 #juzicode.com / VX:桔子code import zipfile zf zipfile.ZipFile(files2.zip, mode w) zf.write(files/1.txt) #写入压缩文档 zf.write(files/2.txt) zf.close() #如果后面要再次打开files2.zip这行是必须的 可以读出刚才创建压缩文档的文件信息 zf zipfile.ZipFile(files2.zip, mode r) for info in zf.infolist():print(info) print(filename:,info.filename) #文件名称print(compress_type:,info.compress_type)#压缩类型print(is_dir:,info.is_dir()) #是否为路径print(file_size:,info.file_size) #文件原始大小 print(compress_size:,info.compress_size) #文件压缩后大小print(CRC:,info.CRC) #crc zf.close() 运行结果 ZipInfo filenamefiles/1.txt filemode-rw-rw-rw- file_size20 filename: files/1.txt compress_type: 0 is_dir: False file_size: 20 compress_size: 20 CRC: 2536054424 ZipInfo filenamefiles/2.txt filemode-rw-rw-rw- file_size12 filename: files/2.txt compress_type: 0 is_dir: False file_size: 12 compress_size: 12 CRC: 3281828313 另外write()方法压缩文件时还支持使用arcname修改压缩文档中的名称比如下面这个例子中将未压缩文件files/1.txt经过压缩后在压缩文档中变成了files1/1ac.txt。 import zipfile zf zipfile.ZipFile(files2.zip, mode w) zf.write(files/1.txt,arcnamefiles/1ac.txt) zf.write(files/2.txt) zf.write(files/3.bmp) zf.close() 运行后看到的压缩文件结构 当使用arcname修改文档名称时如果包含了盘符或者根目录出于安全考虑将会去掉盘符或根目录 #juzicode.com / VX:桔子code import zipfile zf zipfile.ZipFile(files2.zip, mode w) zf.write(files/1.txt,arcnamee:/juzicode/1ac.txt) zf.write(files/2.txt,arcname/juzicode/2ef.txt) zf.write(files/3.bmp) zf.close() 运行后看到的压缩文件结构 从这个例子可以看到盘符e:/和根目录/在压缩文档中都消失了。 但是如果使用了上层目录字符“..” 或者使用”* ?”等操作系统不识别的字符压缩文档中仍然按照原样方式照常写入只是在解压缩的时候会按照前面extract()或者extractall()方法中提到的规则去除或替代。 #juzicode.com / VX:桔子code import zipfile zf zipfile.ZipFile(files3.zip, mode w) zf.write(files/1.txt,arcname../juzicode/1ac.txt) zf.write(files/2.txt,arcname2ef*.txt) zf.write(files/3.bmp,arcname3?xy.bmp) zf.close() 运行后看到的压缩文件结构 3.2、writestr()方法 writestr()方法和write()方法的流程大致相同 首先用ZipFile()创建一个文件实例zf传入压缩文件名mode’w’表示要创建压缩文档。 然后用writestr()写文件第一个入参为文件名称或者ZipInfo实例第2个入参data为字符串或者二进制数值。 最后用close()关闭压缩文档。 #juzicode.com / VX:桔子code import zipfile pf open(files/3.bmp,rb) zf zipfile.ZipFile(files1.zip, mode w) zf.writestr(files/123.txt,123567) #字符串 zf.writestr(files/123.bmp,pf.read()) #bytes pf.close() zf.close() 运行后生成的压缩文件结构 这个例子中生成了2个文件一个为txt文本文件写入的内容为字符串一个为bmp图片文件写入的是bytes类型的数据。 扩展阅读 Python桔子教程
http://www.w-s-a.com/news/478135/

相关文章:

  • 苍南做网站微信建设网站哪家好
  • 华中农业大学基因编辑在线设计网站网站蓝色配色
  • 洛阳建设工程信息网站怎么在服务器建立网站
  • 陕西省建设部官方网站微信小程序怎么关闭这个功能
  • 唐河县住房和城乡建设局网站公司需要做网站
  • 体现网站特色免费个人域名网站
  • ps国外教程网站seo优化是什么职业
  • 什么是网站单页适合女生做的网站
  • 环境文化建设方案网站企业英语网站
  • 南通网站关键词推广响应式网站建设流程
  • 湖北响应式网站建设企业做漫画网站 漫画哪找
  • 东莞建设通网站中小企业网站的建设实践报告
  • 合肥网站建设电话wordpress 点击量
  • 公司网站制作注意什么wordpress如何邀请人看
  • 做渲染的网站太原做网站兼职
  • 网站开发实施方案怎么设置wordpress底栏文字
  • 网站建设朝阳学前端有必要找培训机构吗
  • 自适应网站好处wordpress ftp验证
  • 网站建设的时间免费ppt模板的网站
  • 建个人网站一般多少钱ppt下载网站哪个好
  • 网站建设比赛网站建设合同标的怎么写
  • 中国做的儿童编程网站网站建设模板网站
  • 电脑做系统网站微信开店
  • site之后网站在首页说明说明网络舆情分析师怎么考
  • 本溪网站建设兼职wordpress lapa
  • 官网网站设计费用vue大型网站怎么做路由
  • 青海省安建设管理部门网站厦门网站快照优化公司
  • 张家港建网站公司网站开发 认证
  • 网站建设方式优化兰州医院网站制作
  • 怎么创造网站wordpress伪静态规则怎么写