Python:迭代包含换行符的字符串

Chr*_*and 7 python string

我有一个由换行符分隔的字符串,我需要单独处理每一行.我虽然可以通过使用for循环迭代.但是,这会分别打印每个角色.

例:

convo = "Bob: Hello \n Sandy: How are you? \n Bob: Confused by a python problem"

for line in convo:
    print(line)

>>> B
>>> o
>>> b
>>> :
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

iCo*_*dez 16

你可以使用str.splitlines:

>>> convo = "Bob: Hello \n Sandy: How are you? \n Bob: Confused by a python problem"
>>> for line in convo.splitlines():
...     print(line)
...
Bob: Hello
 Sandy: How are you?
 Bob: Confused by a python problem
>>>
Run Code Online (Sandbox Code Playgroud)

来自文档:

str.splitlines([keepends])

返回字符串中的行列表,在行边界处断开.此方法使用通用换行方法来分割线.除非给出keepends且为true,否则换行符不包括在结果列表中.


Mar*_*ers 6

使用str.splitlines()以下命令按换行符拆分字符串:

for line in convo.splitlines():
    print(line)
Run Code Online (Sandbox Code Playgroud)

其中splitlines()使用通用换行符来拆分字符串,这意味着它将支持不同平台的行分隔符约定.

演示:

>>> convo = "Bob: Hello \n Sandy: How are you? \n Bob: Confused by a python problem"
>>> for line in convo.splitlines():
...     print(line)
... 
Bob: Hello 
 Sandy: How are you? 
 Bob: Confused by a python problem
Run Code Online (Sandbox Code Playgroud)