Я работаю под ubuntu на скрипте python3.4, где я беру в параметр файл (закодированный в UTF-8), созданный под Windows. Мне нужно пройти через строку строки за строкой (разделенной \r\n
), зная, что в «строках» содержится '\n'
, которые я хочу сохранить.отключить автоматическое изменение с r n на n в python
Моя проблема заключается в том, что Python преобразует файл "\r\n"
в "\n"
при открытии. Я пытался открыть различные режимы ("r"
, "rt"
, "rU"
).
Единственное, что я нашел, это работать в двоичном режиме, а не в текстовом режиме, открываясь с помощью режима "rb"
.
Есть ли способ сделать это, не работая в двоичном режиме или в правильном порядке?
EDIT: Решение:
with open(filename, "r", newline='\r\n') as f:
Примечание: как аргумент mode, так и 'encoding' являются необязательными здесь (' 'r'' является режимом по умолчанию повсюду, и если вы не знаете, что кодировка является' utf-8', это может быть или не быть правильным кодирование для использования; на Windows 'utf-16' и языковые кодовые страницы одинаково распространены, если не более распространены). – ShadowRanger
@ShadowRanger: конечно, но явно все еще лучше, чем неявное. Я всегда настоятельно рекомендую не оставлять «кодировку» по умолчанию. –
Решение: 'с открытым (имя файла, 'r', encoding = 'utf-8', newline = '\ r \ n') как f:' спасибо за подсказку – lu1her