本模块里还提供了对文件进行压缩包创建,以及解压缩包的功能,主要使用 zipfile和 tarfile模块的功能来实现。
shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])
创建一个ZIP或tar的压缩包,并返回它的名称。参数base_name是创建压缩包的路径文件名称;参数format是选择打包格式,可选项:zip、tar、bztar、gztar;参数root_dir是保存压缩文件的根目录;参数base_dir是将要被压缩的开始目录,默认情况root_dir和base_dir都是当前程序运行的目录。参数owner和group都使用当前创建文件时的关系。参数logger是参考库logging.Logger。
例子:
#python 3.4
import shutil
print(shutil.make_archive('F:\\temp\\py\\ziptest.zip', 'zip',
'F:\\temp\\py\\dir1'))
结果输出如下:
F:\temp\py\ziptest.zip.zip
shutil.get_archive_formats()
返回当前模块支持压缩的格式列表。
例子:
#python 3.4
import shutil
print(shutil.get_archive_formats())
结果输出如下:
[('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('zip', 'ZIP file')]
shutil.register_archive_format(name, function[, extra_args[, description]])
注册一个新的文件压缩格式。参数name是新压缩格式的名称;参数function是执行功能的函数;参数exta_args是另外传送给压缩对象的关键字参数;参数description是描述新压缩格式的说明。
shutil.unregister_archive_format(name)
从支持压缩的文件列表里删除指定的格式。
shutil.unpack_archive(filename[, extract_dir[, format]])
解压一个压缩包。参数filename是将要解压的路径和文件名称;参数extract_dir是解压后放置的目录;参数format是选择解压的格式,如果没有选择,默认以将要解压文件的格式来选择解压模块。如果没有发现可以解压时,抛出异常ValueError。
例子:
#python 3.4
import shutil
r = shutil.unpack_archive('F:\\temp\\py\\ziptest.zip.zip',
'F:\\temp\\py\\abc', 'zip')
print(r)
结果输出如下:
None
本例子,把压缩包F:\\temp\\py\\ziptest.zip.zip解压到目录F:\\temp\\py\\abc里面,解压的格式是zip。
shutil.register_unpack_format(name, extensions, function[, extra_args[, description]])
注册一个新的解压格式功能。参数name是解压功能的名称;参数extensions是解压文件的扩展名称,比如.zip;参数extra_args是以序列(name, value)来传送给调用对象的参数;参数description是描述解压功能的说明。
shutil.unregister_unpack_format(name)
删除解压功能函数。参数name是解压功能的名称。
shutil.get_unpack_formats()
获取解压功能的所有格式列表。
例子:
#python 3.4
import shutil
r = shutil.get_unpack_formats()
print(r)
结果输出如下:
[('bztar', ['.bz2'], "bzip2'ed tar-file"), ('gztar', ['.tar.gz', '.tgz'], "gzip'ed tar-file"), ('tar', ['.tar'], 'uncompressed tar file'), ('zip', ['.zip'], 'ZIP file')]
蔡军生 QQ:9073204 深圳