2015-04-23 33 views
8

Mam skrypt, który kompresuje pliki wyjściowe. Problem polega na tym, że jeden z plików ma ponad 4 GB. W jaki sposób mogę przekonwertować mój skrypt na rozszerzenia ZIP64 zamiast standardowego zip?Python korzystający z rozszerzeń ZIP64 podczas kompresowania dużych plików

Oto jak Ja obecnie skompresowanie:

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

Dzięki! Bill

Odpowiedz

5

Jak to:

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

Wyjazd zipfile-objects.

Można to zrobić:

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