Как добавить что-то в конец текстового файла в Python? - PullRequest
0 голосов
/ 04 апреля 2020

По какой-то причине этот код действует так, будто режим редактирования не добавляется:

def log_time(name, time):
    get_log(date.today())
    f = open(logFile, 'a')
    f.write(name + ' | ' + time + '\n')
    f.close()

Что-то не так с этим, просто глядя на эту функцию? Я достаточно уверен, что другие функции работают нормально. Проблема в том, что когда я вызываю эту функцию дважды, в файле появляется только одна вещь.


Я понял, что было не так, но я не знаю, почему это неправильно. Когда я создал файл, я использовал режим «w +», а когда я изменил его на «a», он работал. Может кто-нибудь сказать мне, почему?

1 Ответ

1 голос
/ 04 апреля 2020

'a' - режим добавления. Он всегда помещает все, что вы пишете, в конец файла (он не будет писать поверх него). Я также рекомендовал бы использовать блоки «с открытыми» вместо того, чтобы говорить «открывать и закрывать» каждый раз, когда вы открываете файл.

def log_time(name, time):
    get_log(date.today())
    with open(logFile, 'a') as f:
        f.write(name + ' | ' + time + '\n')

Он выглядит чище и закрывает файл после блока. Для получения дополнительной информации о режимах вы можете увидеть { ссылка }

...