免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1612 | 回复: 0
打印 上一主题 下一主题

Python压缩文件夹/解压缩zip文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-03 10:53 |只看该作者 |倒序浏览
使用python自带的zipfile模块做压缩文件夹/解压缩zip文件功能

[Python]代码
  1. #coding=utf-8
  2. #甄码农python代码
  3. #使用zipfile做目录压缩,解压缩功能

  4. import os,os.path
  5. import zipfile

  6. def zip_dir(dirname,zipfilename):
  7.     filelist = []
  8.     if os.path.isfile(dirname):
  9.         filelist.append(dirname)
  10.     else :
  11.         for root, dirs, files in os.walk(dirname):
  12.             for name in files:
  13.                 filelist.append(os.path.join(root, name))
  14.          
  15.     zf = zipfile.ZipFile(zipfilename, "w", zipfile.zlib.DEFLATED)
  16.     for tar in filelist:
  17.         arcname = tar[len(dirname):]
  18.         #print arcname
  19.         zf.write(tar,arcname)
  20.     zf.close()


  21. def unzip_file(zipfilename, unziptodir):
  22.     if not os.path.exists(unziptodir): os.mkdir(unziptodir, 0777)
  23.     zfobj = zipfile.ZipFile(zipfilename)
  24.     for name in zfobj.namelist():
  25.         name = name.replace('\\','/')
  26.         
  27.         if name.endswith('/'):
  28.             os.mkdir(os.path.join(unziptodir, name))
  29.         else:            
  30.             ext_filename = os.path.join(unziptodir, name)
  31.             ext_dir= os.path.dirname(ext_filename)
  32.             if not os.path.exists(ext_dir) : os.mkdir(ext_dir,0777)
  33.             outfile = open(ext_filename, 'wb')
  34.             outfile.write(zfobj.read(name))
  35.             outfile.close()

  36. if __name__ == '__main__':
  37.     zip_dir(r'E:/python/learning',r'E:/python/learning/zip.zip')
  38.     unzip_file(r'E:/python/learning/zip.zip',r'E:/python/learning2')
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP