others - 通过 python,在CSV文件中更改特定值

我需要改变csv文件列的特定值的方法,例如我有csv文件:


"Ip","Sites"
"127.0.0.1",10
"127.0.0.2",23
"127.0.0.3",50

我需要将"127.0.0.2 "的值23更改为30.

我使用csv库:import csv

谢谢!

时间:

这是打开csv文件,更改内存中的值,然后将更改写回磁盘的解决方案。


r = csv.reader(open('/tmp/test.csv')) # Here your csv file
lines = [l for l in r]

行的内容:


[['Ip', 'Sites'],
 ['127.0.0.1', '10'],
 ['127.0.0.2', '23'],
 ['127.0.0.3', '50']]

修改值:

 
lines[2][1] = '30'

 

行的内容:


[['Ip', 'Sites'],
 ['127.0.0.1', '10'],
 ['127.0.0.2', '30'],
 ['127.0.0.3', '50']]

现在我们只需要把它写回到文件里


writer = csv.writer(open('/tmp/output.csv', 'w'))
writer.writerows(lines)

你不能真正替换现有文件中的值。 相反,你需要:

  1. 读取现有文件
  2. 在内存中更改文件
  3. 写出新文件( 覆盖现有文件)

你还可以在现有文件行中读取它,并将它的写入新文件,并将值替换为一个新文件。 完成后,关闭两个文件,删除原始文件并重命名新文件。

...