我有一个简单的程序,可以在数据帧的for循环中进行一些计算。
该程序打印5个变量的结果,例如每次迭代后a,b,c,d,e
我只是想在每次循环运行时将新行中的这5个值附加到CSV,但我无法弄清楚如何做到这一点!我尝试过基本的csv写入,但它们总是出现在同一列中,而不是连续出现在一起
任何帮助将不胜感激
csvRow = [x, ctr, clicks, spend, bidTotal, cpm, cpc]
csvfile = "data.csv"
with open(csvfile, "a") as fp:
wr = csv.writer(fp, dialect='excel')
wr.writerow(csvRow)
答案 0 :(得分:4)
如果列表正确,您的代码似乎工作正常:
import csv
x, ctr, clicks, spend, bidTotal, cpm, cpc = 1, 2, 3, 4, 5, 6, 7
csvRow = [x, ctr, clicks, spend, bidTotal, cpm, cpc]
csvfile = "data.csv"
with open(csvfile, "a") as fp:
wr = csv.writer(fp, dialect='excel')
wr.writerow(csvRow)
wr.writerow(['a', 'b', 'c', 'd', 'e', 'f', 'g'])
open(csvfile, 'r').read()
然后返回:
'1,2,3,4,5,6,7 \ r \ NA,B,C,d,E,F,G \ r \ N'
- 正如所料。
如果它仍然不起作用,请尝试提供一个重现问题的最小示例。请记住(使用open(... "a")
)您要附加到现有文件,因此如果它看起来不对,这可能是该程序以前版本的遗留问题。
答案 1 :(得分:1)
由于运行Windows时csv
模块存在限制,因此存在空行:
Python 3:
with open(csvfile, "a", newline='') as fp:
Python 2:
with open(csvfile, "ab") as fp:
阅读相关的问与答:portable way to write csv file in python 2 or python 3
答案 2 :(得分:0)
要将值写入文件,首先需要打开文件以将值放入:
file = open('filename.csv', 'a') #opens a file for appending
然后你必须在循环的每次迭代中写入文件:
file.write('{}, {}, {}, {}, {}\n'.format(a, b, c, d, e)) #writes a formatted string to the file
完成后关闭文件:
file.close()
答案 3 :(得分:-1)
变量---- USER_ID
字典:--- Curso ['ultima'] ['key']
常数:'hola'
csvRow = [user_id, NCurso, Curso['ultima']['key'], 'hola']
csvfile = "digraph.csv"
with open(csvfile, "a", newline='') as fp:
wr = csv.writer(fp, dialect='excel')
wr.writerow(csvRow)
结果:
1,Mate,131313,hola
2,Fisica,121313,hola
3,Cal,131334,hola