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开发windows GUI程序入门实例
Oct 23 Python
Python中特殊函数集锦
Jul 27 Python
Python作用域用法实例详解
Mar 15 Python
python 队列详解及实例代码
Oct 18 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
浅谈django的render函数的参数问题
Oct 16 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 Python
python实现可逆简单的加密算法
Mar 22 Python
详解小白之KMP算法及python实现
Apr 04 Python
Django用户认证系统 组与权限解析
Aug 02 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 Python
理解python中装饰器的作用
Jul 21 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 创建标签云函数代码
2010/05/26 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python中的rjust()方法使用详解
2015/05/19 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
优秀党员获奖感言
2014/02/18 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
食品安全处置方案
2014/06/14 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
党支部对照检查材料
2014/08/25 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
golang中的并发和并行
2021/05/08 Golang
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技