Python中使用tarfile压缩、解压tar归档文件示例


Posted in Python onApril 05, 2015

Python自带的tarfile模块可以方便读取tar归档文件,牛b的是可以处理使用gzip和bz2压缩归档文件tar.gz和tar.bz2。
与tarfile对应的是zipfile模块,zipfile是处理zip压缩的。请注意:os.system(cmd)可以使Python脚本执行命令,当然包括:tar -czf  *.tar.gz *,tar -xzf *.tar.gz,unzip等,当我觉得这样尽管可以解决问题,但我觉得很业余。

使用tarfile压缩

import tarfile

 

#创建压缩包名

tar = tarfile.open("/tmp/tartest.tar.gz","w:gz")

#创建压缩包

for root,dir,files in os.walk("/tmp/tartest"):

    for file in files:

        fullpath = os.path.join(root,file)

        tar.add(fullpath)

tar.close()

使用tarfile解压
def extract(tar_path, target_path):

    try:

        tar = tarfile.open(tar_path, "r:gz")

        file_names = tar.getnames()

        for file_name in file_names:

            tar.extract(file_name, target_path)

        tar.close()

    except Exception, e:

        raise Exception, e

其中open的原型是:

tarfile.open(name=None, mode='r', fileobj=None, bufsize=10240, **kwargs)

mode的值有:
'r' or 'r:*'   Open for reading with transparent compression (recommended).

'r:'   Open for reading exclusively without compression.

'r:gz'   Open for reading with gzip compression.

'r:bz2'   Open for reading with bzip2 compression.

'a' or 'a:'   Open for appending with no compression. The file is created if it does not exist.

'w' or 'w:'   Open for uncompressed writing.

'w:gz'   Open for gzip compressed writing.

'w:bz2'   Open for bzip2 compressed writing.

更多请参考:tarfile — Read and write tar archive files

Python 相关文章推荐
python实现udp数据报传输的方法
Sep 26 Python
Python中的高级数据结构详解
Mar 27 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
Python解析nginx日志文件
May 11 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
Python iter()函数用法实例分析
Mar 17 Python
Python将图片转换为字符画的方法
Jun 16 Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 Python
django admin后管定制-显示字段的实例
Mar 11 Python
Python Socketserver实现FTP文件上传下载代码实例
Mar 27 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 Python
低版本中Python除法运算小技巧
Apr 05 #Python
Python中使用PDB库调试程序
Apr 05 #Python
使用PDB模式调试Python程序介绍
Apr 05 #Python
python使用calendar输出指定年份全年日历的方法
Apr 04 #Python
python获取指定网页上所有超链接的方法
Apr 04 #Python
python中字典dict常用操作方法实例总结
Apr 04 #Python
python随机生成指定长度密码的方法
Apr 04 #Python
You might like
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
layui表格数据重载
2019/07/27 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
python中实现字符串翻转的方法
2018/07/11 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
python中np是做什么的
2020/07/21 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
ORACLE第二个十问
2013/12/14 面试题
优秀企业获奖感言
2014/02/01 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
工作推荐信模板
2015/03/25 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
教师师德工作总结2015
2015/07/22 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS