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 fabric实现远程操作和部署示例
Mar 25 Python
Python下载懒人图库JavaScript特效
May 28 Python
Python3实现取图片中特定的像素替换指定的颜色示例
Jan 24 Python
在python中画正态分布图像的实例
Jul 08 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
Python openpyxl读取单元格字体颜色过程解析
Sep 03 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
Dec 17 Python
python 实现Requests发送带cookies的请求
Feb 08 Python
python自动化八大定位元素讲解
Jul 09 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 Python
Python如何让字典保持有序排列
Apr 29 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
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
javascript实现颜色渐变的方法
2013/10/30 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
Express.JS使用详解
2014/07/17 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
JavaScript多种图形实现代码实例
2020/06/28 Javascript
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
Python获取文件ssdeep值的方法
2014/10/05 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
Python中print函数简单使用总结
2019/08/05 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
python 利用toapi库自动生成api
2020/10/19 Python
python自动化发送邮件实例讲解
2021/01/04 Python
若干个Java基础面试题
2015/05/19 面试题
人力资源作业细则
2014/03/03 职场文书
生日宴会主持词
2014/03/20 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
创业计划书之校园超市
2019/09/12 职场文书
导游词之无锡唐城
2019/12/12 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL