8.8.2 打包操作

本模块里还提供了对文件进行压缩包创建,以及解压缩包的功能,主要使用 zipfiletarfile模块的功能来实现。

shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])

创建一个ZIPtar的压缩包,并返回它的名称。参数base_name是创建压缩包的路径文件名称;参数format是选择打包格式,可选项:ziptarbztargztar;参数root_dir是保存压缩文件的根目录;参数base_dir是将要被压缩的开始目录,默认情况root_dirbase_dir都是当前程序运行的目录。参数ownergroup都使用当前创建文件时的关系。参数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  深圳

你可能感兴趣的:(python,milang)