0

我有一个扩展名为.xls的 excel 文件,但他的类型是Tab Space 分隔的 Text

当我尝试通过 MS Excel 打开文件时,它告诉我扩展名是假的。所以我必须确认我信任该文件,然后我才能阅读它。

但我真正的问题是,当我尝试通过xlrd 库读取我的文件时,它给了我这个消息:

xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record;

因此,为了解决这个问题,我在 MS Excel中另存为,然后手动将类型更改为 .xls。

但是我的老板坚持我必须通过代码来做到这一点。我有 3 个选择:Linux 下的 Shell 脚本、 Windows或Python下的 .bat 文件

那么,如何通过 Shell 脚本(命令行)、.bat 或 Python 将 Excel 文件的类型从 Tab 空格分隔的文本更改为 xls 文件?

4

2 回答 2

1

mv 文件。{xls,csv}

这是一个 csv 文件,停止将其视为 excel 文件,事情会更好。:) 大多数语言都有不错的 csv 操作工具。你真的需要excel库吗?

于 2013-09-02T13:38:08.993 回答
0

文件的真实类型取决于文件的内容,而不是文件名。 xlrd根本不在乎名称,它在乎内容,所以xlrd不是您的问题,甚至与您的任务无关。

我不知道您所说的“制表符空格分隔文本”是什么意思。值是否由'\t '(制表符后跟空格字符)分隔?有时是制表符,有时是空格?

如果分隔符是常量,只需使用 Python 的csv模块。如果分隔符是空格并且数据中包含空格,那么可以使用 Python 的split()字符串方法。如果分隔符不同并且可以出现在数据中,那么您将不得不编写一些更花哨的东西来解析它。

无论如何,一旦你读取了数据,写出一个真实的 .xls文件,你最好的 Python 选项就是xlwt模块。

于 2013-09-02T14:59:45.813 回答