第八章:数据压缩与归档-zipfile:ZIP归档访问-创建新归档

8.5.4 创建新归档
要创建一个新归档,需要用模式’w’实例化ZipFile。其会删除所有现有的文件,并创建一个新归档。要增加文件,可以使用write()方法。

from zipfile_infolist import print_info
import zipfile

print('creating archive')
with zipfile.ZipFile('write.zip',mode='w') as zf:
    print('adding README.txt')
    zf.write('README.txt')

print()
print_info('write.zip')

默认地,归档的内容不会被压缩。
运行结果:
在这里插入图片描述
要想增加压缩,需要有zlib模块。如果zlib可用,则可以使用zipfile.ZIP_DEFLATED设置单个文件的压缩模式,或者为归档整体设置压缩模式。默认的压缩模式是zipfile.ZIP_STORED,它会把输入数据增加到归档而不压缩。

from zipfile_infolist import print_info
import zipfile

try:
    import zlib
    compression = zipfile.ZIP_DEFLATED
except:
    compression = zipfile.ZIP_STORED

modes = {
    zipfile.ZIP_DEFLATED:'deflated',
    zipfile.ZIP_STORED:'stored',
    }

print('creating archive')
with zipfile.ZipFile('write_compression.zip',mode='w') as zf:
    mode_name = modes[compression]
    print('adding README.txt with compression mode',mode_name)
    zf.write('README.txt',compress_type=compression)

print()
print_info('write_compression.zip')

这一次归档成员会被压缩。
运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43193719/article/details/89318079