This question already has an answer here:
Good day,
I tried to change a word in a certain column,using index, in a csv file ,but it is not changed.
My code that I tried to use:
import csv
with open('INPUT.CSV', 'r') as file1, open('OUTPUT.csv','w',newline='') as file2:
reader = csv.reader(file1, delimiter=',')
writer = csv.writer(outfile, delimiter=',')
for row in reader:
row[0].replace('word','changed word')# I want to replace in first column=row[0] 'word' with 'changed word'
writer.writerow(row)
The output file is same with the input, no changed.
Can someboby help me in this way?Many thanks in advance!
row[0].replace()
does not replace anything in row[0]. From the docstring:If you want to change the value of
row[0]
you need something likerow[0] = new_value
.A working example would be better (output is open as
file2
but writer is givenoutfile
)But in any case your problem is
replace
replace
returns a copy of the string (with replaced text if the criteria matches)But you are discarding the returned value. You are actually changing nothing in
row[0]
Solution: