我有一个真正使用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()
答案 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。