压缩大文件时使用ZIP64扩展的Python

时间:2015-04-23 17:32:15

标签: python zip zlib zipfile

我有一个压缩输出文件的脚本。问题是其中一个文件超过4Gigs。如何将我的脚本转换为使用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 个答案:

答案 0 :(得分:17)

查看zipfile-objects

你可以这样做:

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

答案 1 :(得分:6)

像这样:

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