将文本转换为以便readlines()按预期工作

2024-04-24 03:47:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,可以使用

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

每一行由\n分隔,但如果行的内容有\r,则不将其视为新行。我需要把所有的\r转换成\n,并得到正确的列表lines

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

我想打开一个文件,将所有\r替换为\n,关闭文件并再次读取,然后使用readlines(),但这似乎是浪费。

我应该如何实现这一点?


Tags: 文件txt内容列表浪费openfilesplit
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')
f = open('file.txt','rU')

这将打开带有Python的universal newline support的文件,并且\r被视为行尾。

相关问题 更多 >