0

Pythonがファイルの行を適切にループしないという問題があります。最初のブロックでは、行を適切にループし、ファイル内の各行を表示します。ただし、2番目のブロックでは、ファイルの最初の行のみを実行してから停止します。ブロック2の出力は同じである必要がありますが、そうではありません。それは私を夢中にさせています。

BLOCK-1
f = open(filename, 'r')
for line in f:
    print line,
f.close()

BLOCK-2
f = open(filename, 'r')
for line in f:
    match = re.search(r'^(.*)$', line)
    if match:
        print match.group(1)
    else:
        return "DOES NOT MATCH"
4

3 に答える 3

2

Your block-2 code has a return statement. Any line that will not match your regex will break the loop.

于 2012-09-18T00:25:53.070 に答える
1

regexどういうわけか2行目と一致していないようです

一致しなかったものを印刷すると役立つ場合があるので、なぜそうしないのかを理解することができます

f = open(filename, 'r')
for line in f:
    match = re.search(r'^(.*)$', line)
    if match:
        print match.group(1)
    else:
        print repr(line), "DOES NOT MATCH"   # <--- Just add this line
        return "DOES NOT MATCH"
于 2012-09-18T00:38:15.970 に答える
1

本当にそうじゃないのprint "DOES NOT MATCH"

于 2012-09-18T00:28:01.127 に答える