昨天我发布了以下链接: Python CSV Module read and write simultaneously
有些人建议我“如果文件b不是非常大,我建议使用readlines()来获取所有行的列表,然后遍历列表并根据需要更改行。”
我希望仍然可以使用CSV模块的功能,但要做他们建议的内容。我是python的新手,但我仍然不知道该如何做到这一点。
有人可以请我提供一个如何做到这一点的例子。
答案 0 :(得分:0)
下面是一个使用DictReader读取CSV文件并使用DictWriter写入stdout的示例。该文件有一个名为PERCENT_CORRECT_FLAG的列,这会修改CSV文件以将此字段设置为0.
#!/usr/bin/env python
from __future__ import with_statement
from __future__ import print_function
from csv import DictReader, DictWriter
import sys
def modify_csv(filename):
with open(filename) as f:
reader = DictReader(f)
writer = DictWriter(sys.stdout, fieldnames=reader.fieldnames)
for i, s in enumerate(writer.fieldnames):
print(i, s, file=sys.stdout)
for row in reader:
row['PERCENT_CORRECT_FLAG'] = '0'
writer.writerow(row)
if __name__ == '__main__':
for filename in sys.argv[1:]:
modify_csv(filename)
如果您不想写入stdout,可以打开另一个文件进行写入并使用它。请注意,如果要回写原始文件,则必须:
在打开写入或
打开一个具有不同名称的文件进行写入,并在关闭后重命名。