8.5.6 从非文件源写数据
有时,可能需要使用其他来源的数据(而非来自一个现有文件)写一个ZIP归档。不是将数据先写入一个文件,然后再把这个文件增加到ZIP归档,可以使用writestr()直接向归档写入一个字节串。
from zipfile_infolist import print_info
import zipfile
msg = 'This data did not exist in a file.董'
with zipfile.ZipFile('writestr.zip',
mode='w',
compression=zipfile.ZIP_DEFLATED,
) as zf:
zf.writestr('from_string.txt',msg)
print_info('writestr.zip')
with zipfile.ZipFile('writestr.zip','r') as zf:
print(zf.read('from_string.txt'))
在这里,要利用ZipFile的compress_type参数压缩数据,因为writestr()不接收指定压缩的参数。
运行结果: