107

私は多くの行を持つ文字列の壁を持っています。for句を含む行を1つずつ読み取るにはどうすればよいですか?これが私がやろうとしていることであり、そのfor line in textData行で参照されているtextData変数でエラーが発生します。

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

textData変数は存在します。ダウンする前に出力しますが、プリコンパイラーがエラーを発生させていると思います。

4

3 に答える 3

183

使用するのは.splitlines()どうですか?

for line in textData.splitlines():
    print(line)
    lineResult = libLAPFF.parseLine(line)
于 2013-03-14T23:32:36.427 に答える
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
于 2013-03-14T23:32:32.523 に答える
2

この答えは、いくつかのエッジケースで失敗します(コメントを参照)。上記の受け入れられた解決策はこれらを処理します。str.splitlines()行く方法です。それでも、この回答は参考として残しておきます。

古い(間違った)答え:

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

lines = s.split('\n')
print(lines)
for line in lines:
    print(line)
于 2013-03-14T23:35:40.273 に答える