将 "\r\n" 分隔的字符串拆分成行列表?

28 投票
3 回答
44273 浏览
提问于 2025-04-16 01:54

我正在使用子进程模块的 communicate 方法读取一些数据。这些数据是一个很长的字符串,里面用 "\r\n" 来分隔。我想把这个字符串分割成一行一行的列表。在 Python 中怎么做呢?

3 个回答

1
s = re.split(r"[~\r\n]+", string_to_split)

这段代码会给你一个字符串的列表,保存在变量s里面。

2

看看字符串方法的文档,特别是里面的分割方法。

http://docs.python.org/library/stdtypes.html#string-methods

54

可以使用字符串的splitlines方法。

根据文档的说明:

str.splitlines([keepends]) 这个方法会返回字符串中的每一行,按照换行符进行分割。 换行符不会包含在返回的列表中,除非你设置keepends为真。

无论你的操作系统是什么,这个方法都能正确处理换行符,比如"\r\n"、"\r"或"\n"。

需要注意的是,如果换行符是"\n\r",也会进行分割,但你会在每行之间得到一个空字符串,因为它会把"\n"当作有效的换行符,把"\r"当作下一行的结束符。例如:

>>> "foo\n\rbar".splitlines()
['foo', '', 'bar']

撰写回答