既然有压缩模块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”。
如果当前模式不能正常打开文件用于读取,将抛出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
tarfile模块所有异常类的基类
exception tarfile.ReadError
读异常
exception tarfile.CompressionError
压缩异常
exception tarfile.StreamError
流异常
exception tarfile.ExtractError
解压异常
exception tarfile.HeaderError
头部异常
tarfile.ENCODING