zipfile离开我文件的最后几行 - 为什么?

时间:2014-09-12 03:38:39

标签: python kml python-2.6 zipfile kmz

所以我在使用Python中的zipfile模块时遇到了问题。目前,当我尝试压缩KML文件以创建新的KMZ文件时,我错过了最后几行。 KML有多长并不重要。我认为这是因为zipfile没有写最后一个压缩块。

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

是的,在您要求我导入 zlib 进行压缩之前。我也试过在较低级别使用zlib,但也有同样的问题。我被卡住了。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

确保您致电

kmz.close()

.write(...)命令之后,否则文件的全部内容将不会刷新到磁盘。要确保自动发生这种情况,请始终使用with上下文管理器,因为退出循环时文件将被关闭:

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