如何在 python 中逐行读取长的多行字符串

我有一根有很多线的绳子。我如何一行一行的阅读与 for子句?下面是我正在尝试做的事情,我在 for line in textData行中引用的 textData 变量上得到了一个错误。

for line in textData
print line
lineResult = libLAPFF.parseLine(line)

TextData 变量确实存在,我在下载之前打印了它,但是我认为预编译器正在放大这个错误。

184107 次浏览

by splitting with newlines.

for line in wallop_of_a_string_with_many_lines.split('\n'):
#do_something..

如果您对一个字符串进行迭代,那么您就是在该字符串中一个字符一个字符地迭代,而不是一行字符地迭代。

>>>string = 'abc'
>>>for line in string:
print line


a
b
c

使用 .splitlines()怎么样?

for line in textData.splitlines():
print(line)
lineResult = libLAPFF.parseLine(line)

这个答案在几个边缘情况下是失败的(参见注释)。上述已接受的解决方案将处理这些问题。str.splitlines()是正确的选择。尽管如此,我还是把这个答案留作参考。

旧答案(不正确) :

s =  \
"""line1
line2
line3
"""


lines = s.split('\n')
print(lines)
for line in lines:
print(line)