Замена строки в txt файле python
Я хочу сделать игру, и мне нужно записывать и обновлять результат каждого игрока (кол-во монет) в txt файл. Сначала идет имя, а через Enter кол-во монет. Записывается guess.txt примерно так:
Alex
1
John
2
James
5
Michael
2
Я хочу написать функцию, которая заменяла строку в файле на обновленное значение. Т.е. у меня есть имя John со значением 2, функция находит John'а и заменяет следующую за ним строку (2) на новое значение. Проблема в том, что у разных людей могут быть одинаковые значения (и у John'а, и у Michael'а значение = 2) Вот весь код:
from random import randint as rt
from colorama import Fore, Back
from colorama import init
init()
print(Back.GREEN + Fore.BLACK)
# открытие файла
file = open('guess.txt','r')
filea = open('guess.txt','a')
namelist = file.read()
# определение имени и монет
username = input('Как тебя зовут?: ')
coins = 0
# правила
print('Хорошо, {0}.\nЯ загадаю число, а ты его попробуешь отгадать.\nОбозначь диапозон загаданного числа...'.format(username))
# определение диапозона
x = int(input('Я загадаю число от 1 до '))
# моё загаданнное число
rand = rt(1, x)
# кол-во попыток
att = int((x/2.76)//1)
# перевод файла в список
with open('guess.txt', 'r') as file:
namelist = file.read().splitlines()
# регистрация
def reg():
if username in namelist:
ix = namelist.index(username)
cix = ix + 1
coins = pluscoins + int(namelist[cix])
namelist[cix] = str(coins)
print('Имя {0} зарегистрированно.\nКоличество твоих монет: {1}'.format(username, coins))
else:
reg = input('Имя {0} не зарегистрированно!!!\nДля регистрации введи любое число кроме 0: '.format(username))
if reg != 0:
filea.write('\n' + username + '\n' + str(coins))
print('Теперь ты зарегистрирован!Имя: {0}.\nКоличество твоих монет: {1}'.format(username, coins))
else:
filea.close()
# игра
while att > 0:
print('\nКоличество твоих попыток: {0}'.format(att))
# ввод
num = int(input('Попробуй угадать число: '))
if num == float:
print('Ошибка. Введи целое число!')
elif num > x:
print('Ошибка. Введённое число превышает диапазон!')
elif num < 1:
print('Ошибка. Введённное число меньше единицы!')
elif num < rand:
att -= 1
print('\nКоличество твоих попыток: {0}'.format(att))
print('Моё число БОЛЬШЕ твоего :)')
elif num > rand:
att -= 1
print('\nКоличество твоих попыток: {0}'.format(att))
print('Моё число МЕНЬШЕ твоего :)')
else:
print('Поздравляю! Ты отгадал число!')
break
if att == 0:
print('Ты истратил все попытки! Я загадал число {0}...'.format(rand))
print('\nКоличество полученных монет: {0}.'.format(coins))
pluscoins = coins
else:
coins = int((att*2.59)//1)
pluscoins = coins
print('\nКоличество полученных монет: {0}.'.format(coins))
reg()
Спасибо!