Python – Change specific value in CSV file via Python


I need a way to change the specific value of a column of a CSV file. For example I have this CSV file:


and I need to change the value 23 to 30 of the row "".

I use csv library: import csv

Best Solution

This is the solution opening the csv file, changing the values in memory and then writing back the changes to disk.

r = csv.reader(open('/tmp/test.csv')) # Here your csv file
lines = list(r)

Content of lines:

[['Ip', 'Sites'],
 ['', '10'],
 ['', '23'],
 ['', '50']]

Modifying the values:

lines[2][1] = '30'

Content of lines:

[['Ip', 'Sites'],
 ['', '10'],
 ['', '30'],
 ['', '50']]

Now we only have to write it back to a file

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