Python标准库系列之tarfile模块

本系列文章来源:https://blog.ansheng.me/article/python-full-stack-way
官方文档:https://docs.python.org/3.5/library/tarfile.html

打包及重命名文件

>>> 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()

查看文件列表

>>> tar = tarfile.open('tar_file.tar','r')             
# 获取包内的所有文件列表
>>> tar.getmembers()
[, ]

追加

# 以a模式创建文件
>>> tar = tarfile.open('tar_file.tar','a')
>>> tar.add('/tmp/folder/sc.pyc')
>>> tar.close()
>>> tar = tarfile.open('tar_file.tar','r')
>>> tar.getmembers()
[, , ]

解压全部文件

>>> import tarfile
>>> tar = tarfile.open('tar_file.tar','r')
>>> tar.extractall()
>>> tar.close()

解压单个文件

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

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

你可能感兴趣的:(Python标准库系列之tarfile模块)