2010-07-27 139 views
15

我正在读取来自子流程模块通信方法的一些数据。它是以“\ r \ n”分隔的大字符串进入的。我想把它分成几行。这是如何在python中执行的?将由“ r n”分隔的字符串拆分为行列表?

+1

当你阅读'string.split()'时,你发现了什么?你有什么尝试?你正在使用什么教程? – 2010-07-27 15:10:48

回答

33

对字符串使用splitlines方法。

从文档:

str.splitlines([keepends]) 返回字符串中的线,在断裂线边界的列表。 换行符不包含在 结果列表中,除非在给出的情况下为 并且为真。

无论操作系统是什么操作系统,无论是结束行是“\ r \ n”,“\ r”还是“\ n”,这都能做正确的事情。

注意以“\ n \ r”结尾的行也会分裂,但是您会在每行之间得到一个空字符串,因为它会将“\ n”视为有效行结尾,将“\ r”视为结尾下一行。例如

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

请注意,“foo \ r \ nbar”.splitlines()返回['foo','bar']。 CRLF/CR/LF全部被识别,但LFCR被视为2行。 – 2014-04-29 19:38:43

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

这会给你以s字符串列表。

+1

尽管如果你认为应该把一个字符分成三个字符串(a'',''''和''b''),这将会失败。 – 2010-07-27 15:22:02

+0

这是真的,这将忽略空行。 – tkerwin 2010-07-27 15:29:24