好的,所以基本上我正在尝试在 python 中编写简单的快速脚本来从 *.fla (flash) 文件中搜索 xml。我所做的只是通过 zipfile.ZipFile 从项目中打开 *.fla 文件,浏览此 zip 存档中的所有文件,并通过正则表达式搜索特定术语(脏且简单)。这不是解决我的问题的理想解决方案,但现在可以使用。我正在使用 CS6,并且我知道 CS5 及更高版本的 *.fla 文件基本上是带有 xml(和其他文件)的 zip 存档,并且我已经通过 Windows 上的 7zip 成功提取了这些文件。但不知何故,在我项目的一半文件中,zipfile.ZipFile 在创建时抛出异常“中央目录的魔数错误”。调用堆栈如下所示:
File "fla_search.py", line 92, in try_search_zip
with zipfile.ZipFile(fla_path, compression=compression) as zip_view:
File "C:\bwn_programs\python\lib\zipfile.py", line 1257, in __init__
self._RealGetContents()
File "C:\bwn_programs\python\lib\zipfile.py", line 1352, in _RealGetContents
raise BadZipFile("Bad magic number for central directory")
我还检查了错误文件的标头幻数(以防万一),它似乎实际上对应于实际的 zip 存档:
(是的,文件的所有内容都通过 7zip 成功打开)
那么,可能是什么问题?