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

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

是的,在你问我之前我已经导入了 zlib 来进行压缩。我也尝试在较低级别使用 zlib,但有同样的问题。我被困住了。

有任何想法吗?

最佳答案

确保你打电话

kmz.close()

.write(...) 命令之后,否则文件的全部内容不会刷新到磁盘。为了确保这会自动发生,请始终使用 with 上下文管理器,因为在退出循环时文件将被关闭:
with zipfile.ZipFile(kmzPath, 'w') as kmz:
    kmz.write(kmlPath, 'CORS.kml', zipfile.ZIP_DEFLATED)

关于python - zipfile 将最后几行从我的文件中删除 - 为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25800348/

10-13 05:04