【发布时间】:2018-04-01 17:33:28
【问题描述】:
我在 Debian GNU/Linux 计算机上,使用 Python 2.7.9。
作为我工作的一部分,我一直在制作 Python 脚本,以读取各种格式(例如 Excel、Csv、Txt)的输入并将信息解析为更标准化的文件。 这不是我第一次打开或使用 Excel 文件。
有一个特定的文件给我带来了问题,我无法打开它。当我尝试使用 xlrd(版本 0.9.3)时,它给了我以下错误:
xlrd.open_workbook('sample.xls')
XLRDError:不支持的格式,或损坏的文件:BOF 不 工作簿/工作表: op=0x0009 vers=0x0002 strm=0x000a build=0 year=0 -> BIFF21
我试图自己调查此事,在 StackOverflow 中找到了几个答案,但我还是无法打开它。我找到的这个特定答案可能是问题所在(第二个解释),但它不包括解决方法:https://stackoverflow.com/a/16518707/4345659
可以将文件转换为 csv/txt 的工具也可以解决此问题。
我已经尝试过:
- xlrd
- openpyxl
- xlsx2csv(shell 工具)
此处提供了示例文件: https://ufile.io/r4m6j
附带说明,我可以使用 LibreOffice Calc 和 MS Excel 打开它,因此我最终可以通过这种方式将其更改为 csv。问题是,我需要使用 python 脚本来完成这一切。
提前致谢!
【问题讨论】:
-
只是为了仔细检查 - 文件在 Excel 中打开时没有任何问题?
-
据我所知,是的,我可以打开它,单元格看起来正常,没有任何异常。
-
关于您的
MIME或EOF字节错误的问题。支持的格式不是repaired formats,哪些方法会忽略错误/错误?您的文件有额外或丢失/损坏的数据(关于 file_system) -
@franciscosollima 那个 Excel 文件是从哪里来的?如果您以某种方式从 Windows 环境中获取它,则有可能根据 Unix 标准“翻译”行尾字符。您可以检查的一件事是重命名您的 .xlsx。文件到 .zip 文件并尝试打开它。您应该能够毫无问题地打开它并提取文件。
-
没关系,正在努力获取样品!
标签: python python-2.7 xlrd