Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法


Posted in Python onMay 22, 2015

本文实例讲述了Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法。分享给大家供大家参考。具体实现方法如下:

# 这里将一个文件树中的所有文件和子目录归档到一个tar归档文件,然后压缩 
import tarfile, os 
# compression表示压缩算法,gz表示gzip颜色,bz2表示bzip2压缩,
# 空字符串表示不压缩 
# folder_to_backup: 要归档的文件夹 
# dest_folder 表示目标文件夹 
def make_tar(folder_to_backup, dest_folder, compression = 'bz2'):
  # dest_ext 表示扩展名 
  if compression: 
    dest_ext = '.' + compression 
  else: 
    dest_ext = '' 
  arc_name = os.path.basename(folder_to_backup) 
  # dest_name 为目标文件名,dest_path 为目标文件路径 
  dest_name = '%s.tar%s' % (arc_name, dest_ext) 
  dest_path = os.path.join(dest_folder, dest_name) 
  # 压缩方法决定了open的第二个参数是 "w", 或"w:gz", 或"w:bz2"
  if compression: 
    dest_cmp = ':' + compression 
  else: 
    dest_cmp = ''
  out = tarfile.TarFile.open(dest_path, 'w' + dest_cmp)
  out.add(folder_to_backup, arc_name)
  out.close() 
  return dest_path 
dest_path = make_tar('d:/8 file_system', 'd:/') 
print(dest_path)

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

Python 相关文章推荐
Python  __getattr__与__setattr__使用方法
Sep 06 Python
在python中的socket模块使用代理实例
May 29 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
Python os.rename() 重命名目录和文件的示例
Oct 25 Python
使用Django连接Mysql数据库步骤
Jan 15 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
python 递归相关知识总结
Mar 03 Python
详细介绍python类及类的用法
May 31 Python
Python matplotlib绘制雷达图
Apr 13 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 Python
Python3读取zip文件信息的方法
May 22 #Python
Python中用altzone()方法处理时区的教程
May 22 #Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 #Python
python从网络读取图片并直接进行处理的方法
May 22 #Python
python实现统计代码行数的方法
May 22 #Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 #Python
python使用PIL模块实现给图片打水印的方法
May 22 #Python
You might like
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
Python 字符串操作方法大全
2014/03/11 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
Python版名片管理系统
2018/11/30 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
《颐和园》教学反思
2014/02/26 职场文书
社区党员公开承诺书
2014/08/30 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
2016高考感言
2015/08/01 职场文书
经典祝酒词大全
2015/08/12 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL