开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

15Python标准库系列之tarfile模块

简介:
+关注继续查看

Python标准库系列之tarfile模块


The tarfile module makes it possible to read and write tar archives, including those using gzip, bz2 and lzma compression. Use the zipfile module to read or write .zip files, or the higher-level functions in shutil.

官方文档:https://docs.python.org/3.5/library/tarfile.html


打包及重命名文件

1
2
3
4
5
6
7
8
9
>>> import tarfile
# 以w模式创建文件
>>> tar = tarfile.open('tar_file.tar','w')
# 添加一个文件,arcname可以重命名文件
>>> tar.add('/tmp/folder/file.txt', arcname='file.log')
# 添加一个目录
>>> tar.add('/tmp/folder/tmp')                         
# 关闭
>>> tar.close()

查看文件列表

1
2
3
4
>>> tar = tarfile.open('tar_file.tar','r')             
# 获取包内的所有文件列表
>>> tar.getmembers()
[<TarInfo 'file.log' at 0x7f737af2da70>, <TarInfo 'tmp/folder/tmp' at 0x7f737af2dd90>]

追加

1
2
3
4
5
6
7
# 以w模式创建文件
>>> tar = tarfile.open('tar_file.tar','a')
>>> tar.add('/tmp/folder/sc.pyc')
>>> tar.close()
>>> tar = tarfile.open('tar_file.tar','r')
>>> tar.getmembers()
[<TarInfo 'file.log' at 0x7ff8d4fa1110>, <TarInfo 'tmp/folder/tmp' at 0x7ff8d4fa11d8>, <TarInfo 'tmp/folder/sc.pyc' at 0x7ff8d4fa12a0>]

解压全部文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> import os
>>> import tarfile
>>> os.system("ls -l")
总用量 12
-rw-rw-r-- 1 ansheng ansheng 10240 5月  26 17:40 tar_file.tar
0
>>> tar = tarfile.open('tar_file.tar','r')
>>> tar.extractall()
>>> tar.close()
>>> os.system("ls -l")
总用量 16
-rw-rw-r-- 1 ansheng ansheng     0 5月  26 16:05 file.log
-rw-rw-r-- 1 ansheng ansheng 10240 5月  26 17:40 tar_file.tar
drwxrwxr-3 ansheng ansheng  4096 5月  26 17:48 tmp
0

解压单个文件

如果我们的压缩包很大的情况下,就不能够一次性解压了,那样太耗内存了,可以通过下面的方式进行解压,其原理就是一个文件一个文件的解压。

1
2
3
4
5
import tarfile
tar = tarfile.open('tar_file.tar','r')
for in tar.getmembers():
    tar.extract(n,"/tmp")
tar.close()










本文转自 Edenwy  51CTO博客,原文链接:http://blog.51cto.com/edeny/1925793,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python 面向对象 9: 模块和包
Python 面向对象 9: 模块和包
43 0
Python模块与包
Python模块与包
59 0
第6天:Python 模块和包
第6天:Python 模块和包
32 0
Python 之设计模式、异常处理、模块与包、文件操作及编码
Python 之设计模式、异常处理、模块与包、文件操作及编码
32 0
15、python模块和包
模块和包 一 模块 1 什么是模块?    常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。    但其实import加载的模块分为四个通用类别:   1 使用python编写的代码(.
1222 0
+关注
20376
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载