0

我有一个问题,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"
4

3 回答 3

2

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

于 2012-09-18T00:25:53.070 回答
1

你确定你不是这个意思print "DOES NOT MATCH"

于 2012-09-18T00:28:01.127 回答
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"
于 2012-09-18T00:38:15.970 回答