为什么zipfile.is_zipfile在xlsx文件上返回True?
我正在使用is_zipfile
在提取之前检查它是否为is_zipfile
。 但是该方法从一个StringIO对象的Excel文件返回True。 我正在使用Python 2.7。 有谁知道如何解决这一问题? 使用is_zipfiile
可靠吗? 谢谢。
从微软的XLSX结构概述文档引用,
工作簿数据包含在符合开放包装规范的ZIP包中
所以, .xlsx
文件实际上只是zip文件。 如果您不想将它们视为zip文件,则可能必须使用这样的if条件排除
if os.path.splitext(filename)[1] != ".xlsx" and zipfile.is_file(filename):
这是因为xlsx
实际上是一个有效的zip文件。
也可以看看:
- Office Open XML
- Microsoft Office XML格式