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。
我正在使用 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。