Я пытаюсь использовать модуль zipfile в Python для создания простых файлов zip:
import zipfile
files = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
zip_file_name = 'zipfile_test.zip'
zfh = zipfile.ZipFile(zip_file_name, 'w')
for file in files:
print 'Archiving file %s' % file
zfh.write(zip_file_name)
zfh.close()
Файлы ах находятся в моем рабочем каталоге и пусты, используйте touch a b c d e f g h
для проверки.
После добавления первых 7 элементов в zip-файл он висит на последнем, но продолжает записывать в zip-файл до тех пор, пока не будет исчерпано пространство.Это происходит на двух системах, на которых я тестировал, одна с Python 2.4.3, другая с Python 2.6.2.Если количество файлов меньше 6 или 7, zip-файл создается без проблем.В противном случае происходит сбой после 7-15 файлов и начинается запись мусора в конец файла.Я попытался изменить:
zfh.write(zip_file_name)
на:
zfh.write(zip_file_name, zip_file_name, zipfile.ZIP_DEFLATED)
, что иногда позволяет мне написать еще пару файлов, но также неизбежно приводит к сбою.
Что яделать неправильно?