代码之家  ›  专栏  ›  技术社区  ›  loulou

如何自动将excel文件的类型从制表符空格分隔的文本更改为xls文件?

  •  0
  • loulou  · 技术社区  · 11 年前

    我有 excel文件 其分机号为 .xls文件 但他的类型是 制表符空格分隔的文本 .

    当我试图用MS Excel打开文件时,它告诉我扩展名是假的。所以我必须确认我信任这个文件,这样我才能阅读它。

    但我真正的问题是,当我试图通过 xlrd库 它给了我这样的信息:

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

    所以为了解决这个问题,我去 另存为 在MS Excel中,我更改类型 手动 至.xls。

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

    那么,我该怎么做呢 通过Shell脚本(命令行)、.bat或Python将excel文件的类型从Tab空格分隔的Text更改为xls文件?

    2 回复  |  直到 11 年前
        1
  •  1
  •   dannysauer    11 年前

    mv文件。{xls,csv}

    这是一个csv文件,不要再把它当作excel文件了,一切都会好得多。:)大多数语言中都有不错的csv操作工具。你真的需要excel库吗?

        2
  •  0
  •   John Y    11 年前

    这个 真实的 文件的类型由文件的内容决定,而不是由文件的名称决定。 xlrd 根本不在乎名字,只在乎内容,所以 xlrd公司 不是你的问题,甚至与你的任务无关。

    我不知道你说的“制表符空格分隔文本”是什么意思。值之间是否用分隔 '\t ' (制表符后面跟着空格)?有时是制表符,有时是空格?

    如果分隔符是常量,只需使用Python的 csv 单元如果分隔符是空白,并且数据是 包含空格,则可以使用Python的 split() 字符串方法。如果分离器发生变化 可以出现在数据中,那么您将不得不编写一些更高级的东西来解析它。

    在任何情况下,一旦您读取了数据,就要写出 真实的 .xls 文件,您最好的Python选项是 xlwt 单元