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

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

Например:

  • Ошибка SSL: процедуры: SSL3_GET_SERVER_CERTIFICATE: проверка сертификата не выполнена
  • Проверка существования файла на удаленном SSH-сервере с использованием Python
  • Запись списка списков Python в файл csv
  • Ошибка при создании нового текстового файла с помощью python?
  • Использовать endswith с несколькими расширениями
  • Удаление строк файла в Python
  •  with open('input.txt', 'rt') as input_file: with open('output.txt', 'wt') as output_file: ... 

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

    Для чего и существует ли разница между использованием wt vs w и rt vs r ?

  • Каков наилучший способ открыть файл для эксклюзивного доступа в Python?
  • Поиск с конца файла, бросающего неподдерживаемое исключение
  • Установите FileField Django в существующий файл
  • Запись списка в файл с помощью Python
  • Python: модуль для создания файла блокировки на основе PID?
  • Слишком много файлов открываются с помощью многопроцессорной обработки.
  • 4 Solutions collect form web for “Откройте файлы в режимах «rt» и «wt»”

    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) 

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

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

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

    «R» предназначен для чтения, «w» для записи, а «a» – для добавления.

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

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

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

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

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

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

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

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

    t указывает для text mode

    https://docs.python.org/release/3.1.5/library/functions.html#open

    в linux нет разницы между текстовым режимом и двоичным режимом, однако в окнах они преобразуют \n в \r\n текстовом режиме.

    http://www.cygwin.com/cygwin-ug-net/using-textbinary.html

    Python - лучший язык программирования в мире.