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使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
python实现SMTP邮件发送功能
Jun 16 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
Nov 15 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
基于python二叉树的构造和打印例子
Aug 09 Python
余弦相似性计算及python代码实现过程解析
Sep 18 Python
python使用PySimpleGUI设置进度条及控件使用
Jun 10 Python
python神经网络学习 使用Keras进行回归运算
May 04 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新浪微博登录接口用法实例
2014/12/23 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
学习ExtJS fit布局使用说明
2009/10/08 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
json原理分析及实例介绍
2012/11/29 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
python超简单解决约瑟夫环问题
2015/05/12 Python
Python写的一个简单监控系统
2015/06/19 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
Python字符串处理实例详解
2017/05/18 Python
Python实现线程状态监测简单示例
2018/03/28 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
详解Python 函数参数的拆解
2020/09/02 Python
python实现猜拳游戏项目
2020/11/30 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
工作决心书
2014/03/11 职场文书
我的教育故事演讲稿
2014/05/04 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
会议简讯范文
2015/07/20 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python