zipfile оставляет последние несколько строк из моего файла – почему?

Поэтому у меня возникла проблема с использованием zipfile модуля в Python. В настоящее время, когда я пытаюсь сжать KML-файл для создания нового файла KMZ, мне не хватает последних нескольких строк. Кажется, не имеет значения, как долго KML. Я предполагаю, что это потому, что zipfile не пишет последний заархивированный блок.

 kmz = zipfile.ZipFile(kmzPath , 'w') kmz.write(kmlPath, 'CORS.kml', zipfile.ZIP_DEFLATED) 

И да, прежде чем спросить, я импортировал zlib для сжатия. Я попытался использовать zlib на более низком уровне, но имею ту же проблему. Я застрял.

Есть идеи?

Убедитесь, что вы позвонили

 kmz.close() 

после команды .write(...) , иначе полное содержимое файла не будет сброшено на диск. Чтобы это произошло автоматически, всегда используйте диспетчер контекстов, так как файл будет закрыт при выходе из цикла:

 with zipfile.ZipFile(kmzPath, 'w') as kmz: kmz.write(kmlPath, 'CORS.kml', zipfile.ZIP_DEFLATED)