解决方法
csv module提供了读取和写入csv文件的工具,但不允许在适当位置修改特定单元.
即使您在问题中突出显示的csvwriter.writerow(行)方法也不允许您识别和覆盖特定行.而是将row参数写入writer的文件对象,实际上它只是在一行中附加与writer关联的csv文件.
不要被劝阻使用csv module,它使用起来很简单,如果您可以相对容易地实现您正在寻找的更高级别的功能.
例如,看看以下csv文件:
- 1,2,3,four,5
- 1,5
单词4在第3列(第四列,但是一行只是一个列表,因此索引基于零),这可以很容易地更新为包含带有以下程序的数字4:
- import csv
- in_file = open("d:/in.csv","rb")
- reader = csv.reader(in_file)
- out_file = open("d:/out.csv","wb")
- writer = csv.writer(out_file)
- for row in reader:
- row[3] = 4
- writer.writerow(row)
- in_file.close()
- out_file.close()
导致输出:
- 1,4,5