【发布时间】:2010-07-27 15:09:04
【问题描述】:
我正在从子进程模块的通信方法中读取一些数据。它以由“\r\n”s 分隔的大字符串形式出现。我想将其拆分为行列表。这在python中是如何执行的?
【问题讨论】:
-
当您阅读
string.split()时,您发现了什么?你试过什么?你用的是什么教程?
我正在从子进程模块的通信方法中读取一些数据。它以由“\r\n”s 分隔的大字符串形式出现。我想将其拆分为行列表。这在python中是如何执行的?
【问题讨论】:
string.split() 时,您发现了什么?你试过什么?你用的是什么教程?
对字符串使用 splitlines 方法。
来自文档:
str.splitlines([保持]) 返回字符串中的行列表,在行边界处中断。 换行符不包括在 结果列表,除非 keepends 是 给定的和真实的。
不管操作系统如何,无论行尾是“\r\n”、“\r”还是“\n”,这都会做正确的事情。
NB 以 "\n\r" 结尾的行也会被拆分,但你会在每行之间得到一个空字符串,因为它会将 "\n" 视为有效行结尾,而将 "\r" 视为下一行。例如
>>> "foo\n\rbar".splitlines()
['foo', '', 'bar']
【讨论】:
查看文档以了解字符串方法。特别是拆分方法。
【讨论】:
s = re.split(r"[~\r\n]+", string_to_split)
这将为您提供 s 中的字符串列表。
【讨论】:
'a\n\nb' 应该被拆分成三个字符串('a'、'' 和'b'),这将失败。