因此,在编写代码的这一部分,程序会在else语句中多次打印输出。我试着加上休息时间,但它仍然打印了6次。问题出在哪里?我是python新手btw:(这是代码:
for Path in mapp:
if Path.is_file():
with Path.open("r") as file:
try:
for line in file.readlines():
if keyword in line:
keyword_files.append(str(Path))
Hittad = open("spara.txt", "a")
Hittad.write("Sökord hittad i:" + str(Path) + "n")
Hittad.close()
print("Sökord hittad i:", "n", str(Path))
else:
Intehittad = open("Intehittad.txt", "a")
Intehittad.writelines("Finns ej" + "n")
Intehittad.close()
print("Inte hittad")
except:
pass
要打破两个for循环,请尝试以下操作之一:
- 将for循环拆分为一个单独的函数并从中取出
return
- 用于else构造来检测内部循环何时使用
break
,然后break
何时离开外部循环 - 在内环内升起一个
Exception
,在外环外接住它
调查这类问题的最简单方法是在IDE中使用调试模式(我个人使用PyCharm(。我认为在您的情况下,打印输出是有效的,并且是嵌套for循环的结果。