Python打包文件夹的方法小结(zip,tar,tar.gz等)


Posted in Python onSeptember 18, 2016

本文实例讲述了Python打包文件夹的方法。分享给大家供大家参考,具体如下:

一、zip

import os, zipfile
#打包目录为zip文件(未压缩)
def make_zip(source_dir, output_filename):
  zipf = zipfile.ZipFile(output_filename, 'w')
  pre_len = len(os.path.dirname(source_dir))
  for parent, dirnames, filenames in os.walk(source_dir):
    for filename in filenames:
      pathfile = os.path.join(parent, filename)
      arcname = pathfile[pre_len:].strip(os.path.sep)   #相对路径
      zipf.write(pathfile, arcname)
  zipf.close()

二、tar/tar.gz

import os, tarfile
#一次性打包整个根目录。空子目录会被打包。
#如果只打包不压缩,将"w:gz"参数改为"w:"或"w"即可。
def make_targz(output_filename, source_dir):
  with tarfile.open(output_filename, "w:gz") as tar:
    tar.add(source_dir, arcname=os.path.basename(source_dir))
#逐个添加文件打包,未打包空子目录。可过滤文件。
#如果只打包不压缩,将"w:gz"参数改为"w:"或"w"即可。
def make_targz_one_by_one(output_filename, source_dir):
  tar = tarfile.open(output_filename,"w:gz")
  for root,dir,files in os.walk(source_dir):
    for file in files:
      pathfile = os.path.join(root, file)
      tar.add(pathfile)
  tar.close()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现的简单万年历例子分享
Apr 25 Python
python3 中文乱码与默认编码格式设定方法
Oct 31 Python
python使用tkinter库实现五子棋游戏
Jun 18 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
Django CBV与FBV原理及实例详解
Aug 12 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
python 发送get请求接口详解
Nov 17 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 #Python
Python简单获取自身外网IP的方法
Sep 18 #Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 #Python
Python3实现并发检验代理池地址的方法
Sep 18 #Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 #Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 #Python
Python基于pillow判断图片完整性的方法
Sep 18 #Python
You might like
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
php实现学生管理系统
2020/03/21 PHP
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
Vue列表页渲染优化详解
2017/07/24 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
Python中单、双下划线的区别总结
2017/12/01 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
python实现ID3决策树算法
2018/08/29 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
python opencv调用笔记本摄像头
2019/08/28 Python
Python: 传递列表副本方式
2019/12/19 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
《中彩那天》教学反思
2014/02/22 职场文书
党在我心中演讲稿
2014/09/02 职场文书
售后客服个人自我评价
2014/09/14 职场文书
2014年英语工作总结
2014/12/20 职场文书
OpenCV实现常见的四种图像几何变换
2022/04/01 Python
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers