Подтвердить что ты не робот

Откройте файлы в режимах "rt" и "wt"

Несколько раз здесь, на SO, я видел людей, использующих режимы rt и wt для чтения и записи файлов.

Например:

with open('input.txt', 'rt') as input_file:
     with open('output.txt', 'wt') as output_file: 
         ...

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

Что это такое и существует ли разница между использованием wt vs w и rt vs r?

4b9b3361

Ответ 1

t относится к текстовому режиму. Нет разницы между r и rt или w и wt, поскольку текстовый режим по умолчанию.

Документировано здесь:

Character   Meaning
'r'     open for reading (default)
'w'     open for writing, truncating the file first
'x'     open for exclusive creation, failing if the file already exists
'a'     open for writing, appending to the end of the file if it exists
'b'     binary mode
't'     text mode (default)
'+'     open a disk file for updating (reading and writing)
'U'     universal newlines mode (deprecated)

Ответ 2

t указывает текстовый режим, что означает, что символы \n будут переведены на окончание строки операционной системы хоста при записи в файл и обратно при чтении. Флаг в основном просто шум, так как текстовый режим по умолчанию.

Кроме U, эти флаги режима поступают непосредственно из стандартной функции fopen() библиотеки C, что зафиксировано в шестом абзаце документация python2 для open().

Насколько я знаю, t не является и никогда не был частью стандарта C, поэтому, хотя многие реализации библиотеки C принимают его в любом случае, нет никакой гарантии, что все они будут, и, следовательно, не гарантируют, что это будет работать над каждой сборкой python. Это объясняет, почему документы python2 не перечисляли его и почему он вообще работал в любом случае. python3 docs делают его официальным.

Ответ 3

"r" для чтения, "w" для записи, а "a" - для добавления.

"t" представляет собой текстовый режим, который используется в двоичном режиме.

Несколько раз здесь, на SO, я видел людей, использующих режимы rt и wt для чтения и записи файлов.

Изменить: Вы уверены, что видели rt, а не rb?

Эти функции обычно обертывают функцию fopen, которая описана здесь:

http://www.cplusplus.com/reference/cstdio/fopen/

Как вы можете видеть, в нем упоминается использование b для открытия файла в двоичном режиме.

Указанная ссылка на документ также ссылается на этот режим b:

Добавление "b" полезно даже в системах, которые не обрабатывают двоичные и текстовые файлы по-разному, где они служат в документации.