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