如何自动更改excel文件的类型从Tab空格分隔文本到xls文件?

时间:2013-09-02 09:46:14

标签: python linux excel shell xlrd

我有一个excel文件,其扩展名为 .xls ,但他的类型为标签空格分隔文字

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

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

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

为解决此问题,我在MS Excel中转​​到另存为,然后将手动类型更改为.xls。

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

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

2 个答案:

答案 0 :(得分:1)

mv file。{xls,csv}

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

答案 1 :(得分:0)

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

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

如果分隔符是常量,只需使用Python的csv模块。如果分隔符是空格并且数据包含空格,则可以使用Python的split()字符串方法。如果分隔符变化并且可以出现在数据中,那么你必须写一些更好的东西来解析它。

在任何情况下,一旦您阅读了数据,写出真实 .xls文件,您最好的Python选项就是xlwt模块。