我想更新名为" done"的字段名称在同一个文件csv
这是文件csv的结构:
输入:
Email Done
1@gmail.com
2@gmail.com
3@gmail.com
4@gmail.com
输出:
Email Done
1@gmail.com 1
2@gmail.com 1
3@gmail.com 1
4@gmail.com 1
我想要的样子:
import csv
with open(r'E:\test.csv','r', encoding='utf-8') as f:
reader = csv.DictReader(f,delimiter='|')
for row in reader:
#do something here#
#then write "1" to filename "done"
f.close()
怎么做?非常感谢你 ! :)
答案 0 :(得分:3)
通过这样的简单更改,您可以使用一对简单的读写文件;读一行,然后立即将其写回来。
In [6]: with open('test.csv','r') as input:
...: with open('test1.csv','w') as output:
...: header=input.readline()
...: output.write(header)
...: for line in input:
...: output.write('%s %8d\n'%(line.strip(),1))
In [7]: cat test1.csv
Email Done
1@gmail.com 1
2@gmail.com 1
3@gmail.com 1
4@gmail.com 1
你也可以使用csv阅读器和csv编写器; numpy
用户可能会尝试使用loadtxt
和savetxt
对,但在数组中混合字符串和数字值需要更多的专业知识。
在一个足够新的Python中,你可以将两个打开放在一个上下文中:
with open('test.csv','r') as input, open('test1.csv','w') as output:
...