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实现超简单端口转发的方法
Mar 13 Python
简单介绍Python中用于求最小值的min()方法
May 15 Python
Python基于DES算法加密解密实例
Jun 03 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
Python自定义一个异常类的方法
Jun 27 Python
python数据处理之如何选取csv文件中某几行的数据
Sep 02 Python
python实现机器人卡牌
Oct 06 Python
Python jieba库用法及实例解析
Nov 04 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 Python
详解Python调用系统命令的六种方法
Jan 28 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
劣质的PHP代码简化
2010/02/08 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Python Trie树实现字典排序
2014/03/28 Python
跟老齐学Python之for循环语句
2014/10/02 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
《美丽的田园》教学反思
2014/03/01 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
创业计划书之酒厂
2019/10/14 职场文书