For an Address Book project, I need to find a specific line in a CSV file via input() IE if a user inputs “Toast” it will find the line with Toast on it, then replace a row on that line such as “Jam” with another input from the user.
Is there a way to do this?
Example:
Bread,Condiment1,Condiment2 Toast,Butter,Jam, #Finds Toast input = Toast #Replaces Jam with Nutella input = Nutella
Should then turn into
Bread,Condiment1,Condiment2 Toast,Butter,Nutella
Advertisement
Answer
I assume you always want to replace the third element of the lines. So I wrote this accordingly
with open('example.csv', 'r+', encoding='utf-8') as f: aa = f.readlines() x = input() for k,i in enumerate(aa): if i.startswith(x): y = input() words=i.split(',') words[2] = y aa[k] =','.join(words) f.seek(0) f.write(''.join(aa)) f.truncate()