18

在 Python 中,您可以读取文件并将其行加载到列表中,方法是使用

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

每个单独的行由分隔,\n但如果一行的内容有,\r则它不会被视为新行。我需要将所有转换\r\n并获得正确的列表lines

如果我在.split('\r')里面做,lines我会在列表中得到列表。

我想过打开一个文件,全部替换\r\n,关闭文件并再次读取它,然后使用,readlines()但这似乎很浪费。

我应该如何实现这个?

4

2 回答 2

43
f = open('file.txt','rU')

这将使用 Python 的通用换行支持打开文件,并被\r视为行尾。

于 2009-11-23T19:04:42.560 回答
4

如果这是一个问题,请以二进制格式打开并使用以下代码进行转换:

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')
于 2009-11-23T19:18:01.987 回答