Несколько раз здесь , на 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
?
python
file
file-io
read-write
алексе
источник
источник
wt
vsw
иrt
vsr
- простоexplicit is better than implicit
?r
иrt
...w
не всегда равноwt
. Одним из таких случаев являетсяgzip.open
двоичный режим по умолчанию, а не текстовый режим. Связанный вопрос: stackoverflow.com/questions/42013083/…Значок
t
указывает на текстовый режим, означающий, что\n
символы будут преобразованы в окончание строк ОС хоста при записи в файл и обратно при чтении. Флаг - это просто шум, поскольку по умолчанию используется текстовый режим.В остальном
U
эти флаги режима поступают непосредственно из функции стандартной библиотеки Cfopen()
, что задокументировано в шестом абзаце документации python2 дляopen()
.Насколько мне известно,
t
он не является и никогда не был частью стандарта C, поэтому, хотя многие реализации библиотеки C все равно принимают его, нет никакой гарантии, что все они будут, и, следовательно, нет гарантии, что он будет работать на каждой сборке питон. Это объясняет, почему в документации python2 он не указан и почему он все равно работал. Документы python3 делают его официальным.источник
«R» - для чтения, «w» - для записи, а «a» - для добавления.
Буква «t» представляет текстовый режим в отличие от двоичного режима.
Изменить: вы уверены, что видели rt, а не rb?
Эти функции обычно оборачивают fopen функцию , описанную здесь:
http://www.cplusplus.com/reference/cstdio/fopen/
Как видите, здесь упоминается использование b для открытия файла в двоичном режиме.
Ссылка на документ, которую вы предоставили, также ссылается на этот режим b:
Добавление "b" полезно даже в системах, которые не обрабатывают двоичные и текстовые файлы по-разному, где оно служит документацией.
источник
rt
, например, stackoverflow.com/questions/10971033/… или stackoverflow.com/questions/17127853/… и т. Д. Спасибо за информацию, полезно знать.t
указывает наtext mode
https://docs.python.org/release/3.1.5/library/functions.html#open
в Linux нет разницы между текстовым режимом и двоичным режимом, однако в Windows они преобразуются
\n
в\r\n
текстовый режим.http://www.cygwin.com/cygwin-ug-net/using-textbinary.html
источник
read
возвращает строки Unicode. В двоичном режимеread
возвращаетbytes
экземпляр. Если вы хотите написать код Python 2 с учетом прямой совместимости, вы можете использоватьio.open
вместо стандартаopen
для получения поведения Python 3 (сunicode
противоположнымиstr
экземплярами).