простой ответ (в двоичном режиме) прекрасно работает в Python 2, но требует адаптации в Python 3, поскольку при открытии файла в двоичном виде его содержимое возвращается как bytes
, больше не str
.
Также, если файл большой, факт чтения всего файла может быть проблемой с точки зрения памяти.
В Python 3 вы можете передать параметр newline
в open
, поэтомувместо этого используется значение по умолчанию.
with open("temp.txt","r",newline="\r\n") as f:
for line in f:
....
line
содержит текст плюс \r\n
в конце (используйте line = line.rstrip()
для удаления).
Если есть \n
символов в строке (не после \r
), они читаются как обычный символ.