如何在Python中逐行读取长 multiline 字符串

130 投票
3 回答
220413 浏览
提问于 2025-04-17 19:09

我有一段很长的字符串,里面有很多行。我想用一个for循环一行一行地读取这些行。这里是我想做的事情,但在for line in textData这一行上,我遇到了一个关于textData变量的错误。

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

textData变量确实存在,我在继续之前打印了它,但我觉得是预编译器引发了这个错误。

3 个回答

4

这个回答在一些特殊情况下会出问题(可以查看评论)。上面接受的解决方案可以处理这些情况。使用 str.splitlines() 是正确的做法。不过我还是把这个回答留着,供大家参考。

旧的(不正确的)回答:

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

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

通过换行符来分割。

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
232

那使用 .splitlines() 呢?

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

撰写回答