Замена строки в 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()

Спасибо!


Ответы (0 шт):