Python xlrd-打开文件时的问题
我使用的是xlrd 0.9.4,我想验证我必须打开的文件是否有效 为此,我编写了以下代码: 其中,文件路径是我的文件路径 这工作正常,问题如下。首先,我有一个有效的.xls文件,所以脚本打印完成。现在,假设有效的.xls文件已重命名(也是扩展名),例如从test.xls重命名为test.txt 如果我运行脚本,我会得到相同的结果(完成) 相反,如果我使用“real”.txt文件(空的或带有一些文本),脚本将打印错误类型的文件 发生这种行为是因为文件的“结构”没有更改?我做错什么了吗?还有另一种类型的异常,我可以添加到中,除了分支Python xlrd-打开文件时的问题,python,excel,xlrd,Python,Excel,Xlrd,我使用的是xlrd 0.9.4,我想验证我必须打开的文件是否有效 为此,我编写了以下代码: 其中,文件路径是我的文件路径 这工作正常,问题如下。首先,我有一个有效的.xls文件,所以脚本打印完成。现在,假设有效的.xls文件已重命名(也是扩展名),例如从test.xls重命名为test.txt 如果我运行脚本,我会得到相同的结果(完成) 相反,如果我使用“real”.txt文件(空的或带有一些文本),脚本将打印错误类型的文件 发生这种行为是因为文件的“结构”没有更改?我做错什么了吗?还有另一种类
提前感谢您可以在阅读之前查看如何对文件进行xlrd检查。在at第18-19行定义了一个«magic»字节。文件的第一个字节与第85行的字节序列进行比较。如果它不平等,例外情况就会上升。不涉及文件扩展名
可以找到不同文件类型的签名。您可以看到如何在读取之前对文件进行xlrd检查。在at第18-19行定义了一个«magic»字节。文件的第一个字节与第85行的字节序列进行比较。如果它不平等,例外情况就会上升。不涉及文件扩展名
可以找到不同文件类型的签名。您可以使用
如果file_path.endswith(.xls)或file_path.endswith(.xlsx)):
来测试扩展名。您所说的“有效”是什么意思?这种行为的确切含义不是您所期望的?对我来说完全有道理。文件的名称/扩展名与其内容无关。事实上-输入甚至可以是StringIO
对象,因此甚至没有物理文件名。。。您正在询问库是否可以将数据作为有效工作簿进行处理,而上面的代码正是这样做的…@Ninjappy您是对的,现在我明白了。非常感谢。您可以使用if file_path.endswith(“.xls”)或file_path.endswith(“.xlsx”):
来测试扩展名。您所说的“有效”是什么意思?这种行为的确切含义不是您所期望的?对我来说完全有道理。文件的名称/扩展名与其内容无关。事实上-输入甚至可以是StringIO
对象,因此甚至没有物理文件名。。。您正在询问库是否可以将数据作为有效工作簿进行处理,而上面的代码正是这样做的…@Ninjappy您是对的,现在我明白了。非常感谢。非常感谢你!非常感谢你!
try:
book = xlrd.open_workbook(file_path)
print "Done"
except XLRDError:
print "Wrong type of file."