Это должно быть довольно просто. Основная идея c такова:
open input file for reading
open output file for writing
for each line in input file
if password = "happy"
change user name in line
write line to output file
Это должно быть довольно легко преобразовать в python.
Из комментариев и изучения вашего кода, я чувствую, что вы пытаетесь обновить строку на месте. То есть, похоже, что вы ожидаете, что, учитывая файл «database.txt», который содержит это:
username,password,Recovery1,Answer1,Recovery2,Answer2,Recovery3,Answer3, Recovery4,Answer4,Recovery5,Answer5,
o,o,o,o,o,o,o,o,o,o,
happy,bye,o,o,o,o,o,o,o,o,o,o,
bye,happy,o,o,o,o,o,o,o,o,o,o,
Когда вы вносите изменения, ваш новый «database.txt» будет содержать это:
username,password,Recovery1,Answer1,Recovery2,Answer2,Recovery3,Answer3, Recovery4,Answer4,Recovery5,Answer5,
o,o,o,o,o,o,o,o,o,o,
happy,Hi,o,o,o,o,o,o,o,o,o,o,
bye,happy,o,o,o,o,o,o,o,o,o,o,
Вы можете это сделать, но не можете сделать это на месте. Вы должны записать все строки файла, включая измененную строку, в новый временный файл. Затем вы можете удалить старый файл «database.txt» и переименовать временный файл.
Вы не можете обновить строку в текстовом файле, потому что, если вы измените длину строки, вы либо закончите вставьте лишний пробел в конце измененной строки (поскольку в новой строке меньше символов, чем в старой), или вы перезапишете начало следующей строки (новая строка длиннее старой).
Другой вариант - загрузить все строки в память и закрыть файл. Затем измените строку или строки, которые вы хотите изменить, в памяти. Наконец, откройте файл «database.txt» для записи и вывода всех строк из памяти в файл.