在Python中将.txt文件转换为.xls

时间:2011-11-10 03:24:27

标签: python csv text-files xls

我有一个真正使用csv格式的文件,但是作为.txt传递给我。我需要将此文件转换为.xls格式,以便将其上传到Google文档中。目前我有下面的代码,但它正在将文件中的所有内容吐出到第一个单元格中,而不是为每个逗号值分解不同的单元格。有谁知道如何解决这个问题?

谢谢!

import os

fin = open(r"C:\Users\JohnDoe\Downloads\Report.txt", "r")
data_list = fin.readlines()
fin.close() # closes file

fout = open(r"C:\Users\JohnDoe\Desktop\Report.xls", "w")
fout.writelines(data_list)
fout.flush()
fout.close()

3 个答案:

答案 0 :(得分:6)

将其重命名为.xls不会将其转换为Excel电子表格。但无论如何,为什么要将其转换为.xls只是为了将其上传到Google文档?

如果是.csv,只需将文件重命名为.csv并上传即可将其正确检测为电子表格。

使用os.rename

import os

os.rename("C:\Users\JohnDoe\Downloads\Report.txt", 
          "C:\Users\JohnDoe\Downloads\Report.cvs")

如果真的需要使用Python。

如果您需要从文件中获取实际行而不是行:

from csv import reader

for row in reader(open(r"C:\Users\JohnDoe\Downloads\Report.txt", 'rb')):
    # do something with row

将为您提供每行的单元格列表。

如果您实际 需要使用Excel电子表格,请参阅http://www.python-excel.org/xlwt package

答案 1 :(得分:0)

您的代码只是将Report.txt复制到Report.xls

打开Report.xls时,Excel会将其识别为csv文件,但它不会将逗号识别为分隔符。

您需要使用某种库来编写正确的Excel文件。例如,查看Word的COM接口。

答案 2 :(得分:0)

尝试使用http://packages.python.org/openpyxl/或更旧的excel文件,请使用pyExcelerator查看此help page