xlrd - 打开文件时出现问题

xlrd - issue on opening file

我正在使用 xlrd 0.9.4,我想验证我必须打开的文件是否有效。

为此,我写了这段代码 :

try:
    book = xlrd.open_workbook(file_path)
    print "Done"
except XLRDError:
    print "Wrong type of file."

其中 file_path 是我文件的路径。

这工作正常,问题如下。首先,我有一个有效的 .xls 文件,因此脚本会打印 Done。现在,假设有效的 .xls 文件已重命名(也是扩展名),例如从 test.xls 到 test.txt.

如果我运行脚本,我得到相同的结果(完成)。

相反,如果我使用 "real" .txt 文件(空的或带有一些文本),脚本会打印 Wrong type of file.

出现这种行为是因为文件的 "structure" 没有改变?难道我做错了什么?我可以将另一种类型的异常添加到 except branch?

提前致谢

您可以看到如何在阅读前对文件进行 xlrd 检查。在 xldr source 的第 18-19 行定义了一个 «magic» 字节。文件的第一个字节与第 85 行的此字节序列进行比较。如果不相等,将引发异常。不涉及文件扩展名。

可以找到不同文件类型的签名 there