open () Python второй аргумент для почти всех применений - PullRequest
0 голосов
/ 01 сентября 2018

Я новичок в Python и создаю бота для службы под названием Discord, о которой вы, возможно, знаете.

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

Я читал, что в зависимости от написанного вами письма вы напишите файл, прочитаете его и т. Д.

Дело в том, что я совсем не понимаю, как это работает. Если я правильно прочитал, я думаю, что смешивание букв позволяет выполнять различные действия. Кто-нибудь может мне помочь? Какая строка мне нужна или я должен сделать более одного .read () для этого? Я хотел бы:

  • Если файл не существует, создайте его
  • Возможность чтения файла
  • Возможность перезаписать файл, установив для всего файла то, что я вставляю, а не добавив его.

Если бы кто-нибудь мог мне помочь, мне бы очень понравилось! Спасибо!

1 Ответ

0 голосов
/ 01 сентября 2018
def trace_write(file, text_to_trace):
    write_trace = []
    if type(text_to_trace) ==  str:
        with open(file, 'wt+') as w:
            write_trace.append(text_to_trace)
            w.write(text_to_trace+'\n')
    if type(text_to_trace) == list or type(text_to_trace) == tuple:
        with open(file, 'wt+') as w:
            for line in text_to_trace:
                write_trace=text_to_trace
                w.write(line+'\n')
    return write_trace if write_trace != [] else 'Nothing to trace'

AFAIK Нет способа сделать это без открытия файла в режиме записи, затем закрытия файла после завершения записи и повторного открытия в режиме чтения.

В ответ на раздел об открытии в определенном режиме, где он перезаписывает файл, не добавляет, но также создает файл, если он не существует, вы собираетесь открыть файл в wt+.

Я бы ожидал, что если вы захотите «отследить» то, что было написано ранее, для ведения журнала, скажем, мы могли бы создать новую функцию, как написано выше, которая обрабатывает написание для нас.

Пожалуйста, дайте мне знать, если что-то останется без ответа, и я сделаю все возможное, чтобы исправить это для вас.

Ожидаемый результат ниже:

expected output:

Я действительно не согласен с тем, чтобы хранить информацию в текстовом файле исключительно ради накладных расходов. Я считаю, что было бы гораздо более целесообразным использовать уже существующую систему хранения, которая была опробована и протестирована. Как, например, MongoDB или иди на полную и настройте базу данных на SQL и соответствующие функции, которые нужно хранить и записывать в нее.

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