我有一个确实为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()

最佳答案

仅将其重命名为.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

10-07 13:26
查看更多