tarfile
阅读: 15216
评论:0
既然有压缩模块zipfile,那有一个归档模块tarfile也是很自然的。tarfile模块用于解包和打包文件,包括被gzip,bz2或lzma压缩后的打包文件。如果是.zip类型的文件,建议使用zipfile模块,更高级的功能请使用shutil模块。
定义的类和异常
tarfile.open(name=None, mode='r', fileobj=None, bufsize=10240, **kwargs)
返回一个TarFile类型的对象。本质上就是打开一个文件对象。Python随处可见这种文件对象类型的设计,你很容易就明白,不是吗?
name是文件名或路径。
bufsize用于指定数据块的大小,默认为20*512字节。
mode是打开模式,一个类似filemode[:compression]格式的字符串,可以有下表所示的组合,默认为“r”。
模式
说明
'r'or'r:*'
自动解压并打开文件(推荐模式)
'r:'
只打开文件不解压
'r:gz'
采用gzip格式解压并打开文件
'r:bz2'
采用bz2格式解压并打开文件
'r:xz'
采用lzma格式解压并打开文件
'x'or'x:'
仅创建打包文件,不压缩
'x:gz'
采用gzip方式压缩并打包文件
'x:bz2'
采用bzip2方式压缩并打包文件
'x:xz'
采用lzma方式压缩并打包文件
'a'or'a:'
打开文件,并以不压缩的方式追加内容。如果文件不存在,则新建
'w'or'w:'
以不压缩的方式写入
'w:gz'
以gzip的方式压缩并写入
'w:bz2'
以bzip2的方式压缩并写入
'w:xz'
以lzma的方式压缩并写入
注意
不支持'a:gz', 'a:bz2'和'a:xz'的模式
如果当前模式不能正常打开文件用于读取,将抛出ReadError异常,这种情况下,请使用“r”模式。如果指定的压缩方式不支持,将抛出CompressionError异常。
在w:gz,r:gz,w:bz2,r:bz2,x:gz,x:bz2模式下,tarfile.open()方法额外接受一个压缩等级参数compresslevel,默认值为9。
class tarfile.TarFile
用于读写tarfile文件的类。不要直接使用这个类,请使用tarfile.open()方法。
tarfile.is_tarfile(name)
判断一个文件是否打包文件类型。
exception tarfile.TarError
tarfil