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 相关文章推荐
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
python实现图片筛选程序
Oct 24 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Jupyter Notebook输出矢量图实例
Apr 14 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
python的help函数如何使用
Jun 11 Python
去除python中的字符串空格的简单方法
Dec 22 Python
利用Python函数实现一个万历表完整示例
Jan 23 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 特殊字符处理函数
2008/09/05 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
python之消除前缀重命名的方法
2018/10/21 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
如何真正的了解python装饰器
2020/08/14 Python
CSS3 3D制作实战案例分析
2016/09/18 HTML / CSS
详解HTML5中的标签
2015/06/19 HTML / CSS
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
食品安全处置方案
2014/06/14 职场文书
实验室标语
2014/06/21 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
大学辅导员述职报告
2015/01/10 职场文书
消防验收申请报告
2015/05/15 职场文书
山楂树之恋观后感
2015/06/11 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
Python实现为PDF去除水印的示例代码
2022/04/03 Python
Go语言编译原理之变量捕获
2022/08/05 Golang