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

Преобразовать\r текст в \n, так что readlines() работает по назначению

В Python вы можете прочитать файл и загрузить его строки в список, используя

f = open('file.txt','r')
lines = f.readlines()

Каждая отдельная строка делится на \n, но если содержимое строки имеет \r, то она не рассматривается как новая строка. Мне нужно преобразовать все \r в \n и получить правильный список lines.

Если я сделаю .split('\r') внутри lines, я получу списки внутри списка.

Я подумал об открытии файла, заменил все \r на \n, закрыл файл и снова прочитал его, а затем использовал readlines(), но это кажется расточительным.

Как это реализовать?

4b9b3361

Ответ 2

Если это проблема, откройте в двоичном формате и конвертируйте с помощью этого кода:

from __future__ import with_statement

with open(filename, "rb") as f:
    s = f.read().replace('\r\n', '\n').replace('\r', '\n')
    lines = s.split('\n')