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连接mysql数据库示例(做增删改操作)
Dec 31 Python
使用python将mdb数据库文件导入postgresql数据库示例
Feb 17 Python
python实现的系统实用log类实例
Jun 30 Python
解决Python 中英文混输格式对齐的问题
Jul 16 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
python批量创建指定名称的文件夹
Mar 21 Python
通过cmd进入python的实例操作
Jun 26 Python
python中的&&及||的实现示例
Aug 07 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
python Pexpect模块的使用
Dec 25 Python
Python中tkinter的用户登录管理的实现
Apr 22 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
什么是短波收听SWL
2021/03/01 无线电
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
php实现的二分查找算法示例
2017/06/20 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python urlopen()函数 示例分享
2014/06/12 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
美国著名的团购网站:Woot
2016/08/02 全球购物
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
服装设计专业自荐书范文
2013/12/30 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
2014年统战工作总结
2014/12/09 职场文书
法律意见书范文
2015/06/04 职场文书