Python没有正确循环

时间:2012-09-18 00:23:05

标签: python loops

我遇到的问题是Python没有正确地循环文件中的行。在第一个块中,它正确地在线上循环并显示文件中的每一行。但是在第二个块中它只执行文件的第一行然后停止。块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"

3 个答案:

答案 0 :(得分:2)

你的block-2代码有一个return语句。任何与正则表达式不匹配的行都会破坏循环。

答案 1 :(得分:1)

您确定不是print "DOES NOT MATCH"吗?

答案 2 :(得分:1)

似乎regex与第二行不匹配

打印出不匹配的东西会很有帮助,所以你可以找出原因

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"
相关问题