Есть ли способ напрямую редактировать определенную строку текстового файла через модуль ОС?(Python 3.7) - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь создать игру, в которой ваш счет сохраняется в виде текстового файла.Счет (клики) всегда должен быть на второй строке и сохранять для каждого пользователя.Каждый раз, когда пользователь сохраняет данные, я хотел бы заменить вторую строку текстового файла новым счетом.

Я пытался использовать множество вещей, предлагаемых при переполнении стека, таких как os.replace или os.Resub, но ничего не работает.

def save():
    global userlog
    global clicks
    score = open(directory + "/" + userlog + ".txt", "r+")
#### On this line, I want some code that will replace the second line in the text file listed above.
    for i in range(random.randint(2,5)):
        print("Saving")
        time.sleep(0.10)
        print("Saving.")
        time.sleep(0.10)
        print("Saving..")
        time.sleep(0.10)
        print("Saving...")
        time.sleep(0.10)
    print("\nGame Saved Sucessfully!")

У меня не было ничего работы.Просто получаю некоторые стандартные сообщения об ошибках.

Любая помощь будет оценена :))

Спасибо:)

1 Ответ

1 голос
/ 24 сентября 2019

иллюстрация моего комментария - ваша функция сохранения может делать что-то вроде

# load previously logged information
with open(logfile, 'r') as fobj:
    log = fobj.readlines()

# replace line 2 with some new info
log[1] = 'some new info\n'

# overwrite existing logfile        
with open(logfile, 'w') as fobj:
    for line in log:
        fobj.write(line)

В принципе вы также можете использовать open() в режиме r+, как написали в вопросе.Это потребует от вас использования seek() (см., Например, здесь ), чтобы получить указатель файла на позицию, в которую вы хотите записать - более сложный вариант, который я бы не рекомендовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...