web-dev-qa-db-ja.com

Python大きなファイルを圧縮するときにZip64拡張を使用する

出力ファイルを圧縮するスクリプトがあります。問題は、ファイルの1つが4Gigを超えていることです。標準のzipではなくZip64拡張機能を使用するようにスクリプトを変換するにはどうすればよいですか?

これが私が現在圧縮している方法です:

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()

ありがとう!ビル

14
txwylde

zipfile-objects を確認してください。

あなたはこれを行うことができます:

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

このような:

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