Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change specific value in CSV file via Python

Tags:

python

csv

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

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

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

I use csv library: import csv

like image 391
ihorko Avatar asked Jun 14 '12 13:06

ihorko


People also ask

How do I change a CSV file value?

When working with a CSV file it is often necessary to find data contained within and sometimes replace it. Find & Replace is used for just this. You can access it from the Edit > Find & Replace menu or by pressing Ctrl-F on the keyboard.

How do you update values in CSV using pandas?

We can modify this CSV file using Pandas by changing some cell values. For that, we need to import a CSV file to a DataFrame first. Then we can change cell values by selecting them either by row/column labels or by index positions.


1 Answers

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'],  ['127.0.0.1', '10'],  ['127.0.0.2', '23'],  ['127.0.0.3', '50']] 

Modifying the values:

lines[2][1] = '30' 

Content of lines:

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

Now we only have to write it back to a file

writer = csv.writer(open('/tmp/output.csv', 'w')) writer.writerows(lines) 
like image 68
Diego Navarro Avatar answered Oct 17 '22 07:10

Diego Navarro