为什么zipfile.is_zipfile在xlsx文件中返回True?

时间:2014-03-07 04:17:01

标签: python excel python-2.7 zip

我正在使用is_zipfile在解压缩之前检查它是否是zipfile。但该方法在StringIO对象的excel文件中返回True。我使用的是Python 2.7。有谁知道如何解决这一问题?使用is_zipfiile是否可靠?感谢。

2 个答案:

答案 0 :(得分:3)

这是因为xlsx实际上是一个有效的zip文件。

另见:

答案 1 :(得分:2)

引自Microsoft's XLSX Structure overview doc

  

工作簿数据包含在符合Open的ZIP包中   包装惯例

因此,.xlsx文件实际上只是zip文件。如果您不想将它们视为zip文件,则可能必须使用if这样的条件排除

if os.path.splitext(filename)[1] != ".xlsx" and zipfile.is_file(filename):