我遇到的问题是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"
答案 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"