将变量写入CSV行python

时间:2017-03-18 20:20:44

标签: python python-2.7 csv

我有一个简单的程序,可以在数据帧的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)

4 个答案:

答案 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