我一直在编写一小段python代码,用于从网站下载数据文件并将其写入文本文件(它成功完成)。现在我想获取该文本文件并将其转换为CSV格式。我一直在使用诸如"如何从txt转换为csv"等问题的回答。但仍然是相同的结果,即CSV文件创建成功并且代码执行没有错误,只有CSV文件为空,没有我定义的列标题。
import csv
import requests
res = requests.get('https://www.physics.rutgers.edu/~saurabh/mlcs2k2/vectors_R.dat')
res.status_code = requests.codes.ok
textfile = open("textfile.txt","w")
textfile.write(res.text)
with open('textfile.txt', 'r') as in_file:
stripped = (line.strip() for line in in_file)
lines = (line.split(",") for line in stripped if line)
with open('csvfile.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerow(('Phase', 'M^0_R', 'P_R', 'Q_R')) #Prints correctly
writer.writerows(lines)
答案 0 :(得分:0)
将数据写入文本文件时,将文件保持打开状态。因此,当您稍后重新打开它时,光标已经在文件的末尾,并且仅通过行迭代从光标继续向前,而不是从文件的开头继续。
通过在打开后关闭文件来解决此问题:
textfile = open("textfile.txt","w")
textfile.write(res.text)
textfile.close()