Python在压缩大文件时使用ZIP64扩展功能

15

我有一个压缩输出文件的脚本。问题是其中一个文件超过了4G。我该如何修改我的脚本,以使用ZIP64扩展而不是标准的zip?

这是我当前的压缩方式:

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

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

compressed_name = 'edw_files_' + datetime.strftime(date(), '%Y%m%d') + '.zip' 
print 'creating archive'
zf = zipfile.ZipFile('edw_files_' + datetime.strftime(date(), '%Y%m%d') + '.zip', mode='w')
try:
    zf.write(name1, compress_type=compression)
    zf.write(name2, compress_type=compression)
    zf.write(name3, compress_type=compression)
finally:
    print 'closing'
    zf.close()
2个回答

20

查看zipfile-objects

您可以执行以下操作:

zf = zipfile.ZipFile('edw_files_' + datetime.strftime(date(), '%Y%m%d') + '.zip', mode='w', allowZip64 = True)

但是,allowZip64的默认值是True。 - Cícero Alves
2
抱歉! 在Python 3中,默认值为True。而在Python 2中,默认值为False。 - Cícero Alves

9

就像这样:

zf = zipfile.ZipFile('edw_files_' + datetime.strftime(date(), '%Y%m%d') + '.zip', mode='w', allowZip64=True)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接