Ответ 1
f = open('file.txt','rU')
Это открывает файл с Python универсальной поддержкой новой строки и \r
рассматривается как конец строки.
В Python вы можете прочитать файл и загрузить его строки в список, используя
f = open('file.txt','r')
lines = f.readlines()
Каждая отдельная строка делится на \n
, но если содержимое строки имеет \r
, то она не рассматривается как новая строка. Мне нужно преобразовать все \r
в \n
и получить правильный список lines
.
Если я сделаю .split('\r')
внутри lines
, я получу списки внутри списка.
Я подумал об открытии файла, заменил все \r
на \n
, закрыл файл и снова прочитал его, а затем использовал readlines()
, но это кажется расточительным.
Как это реализовать?
f = open('file.txt','rU')
Это открывает файл с Python универсальной поддержкой новой строки и \r
рассматривается как конец строки.
Если это проблема, откройте в двоичном формате и конвертируйте с помощью этого кода:
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')