如何遍历整个python脚本,并且每次更改订单都会运行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何遍历整个python脚本,并且每次更改订单都会运行相关的知识,希望对你有一定的参考价值。
我正在尝试创建一个在Linux系统后台运行的脚本。我希望它检查是否满足某些条件;一旦他们有,跳过该部分代码,不再检查。
Loop = True
while True:
V1 = None
while True:
print("Checked for vulnerability")
if my_file.is_file():
print('Virus is still there')
time.sleep(6)
os.system("rm /home/levi/Desktop/Trojan")
else:
print('Virus removed')
V1 = False
break
print('Did this work')
我需要检查V1:if True
,然后执行循环。当它循环时,将值设置为False
并结束脚本 - 但它会卡在else语句中并且永远不会结束。我从未见过“做过这件事”。
答案
你已经把自己绑成了一个双无限循环的结。你设置了两个变量(Loop和V1,两个都是不好的名字),从不使用任何一个来控制循环。试试这个:当你完成时,只需要break
循环。
while True:
print("Checked for vulnerability")
if my_file.is_file():
print('Virus is still there')
time.sleep(6)
os.system("rm /home/levi/Desktop/Trojan")
else:
print('Virus removed')
break
print('Did this work')
另一答案
你有两个无限循环,只能用break
语句结束。你的代码中有一个break
语句,但只有一个。 break
语句只会突破它所处的最内部循环,在这种情况下,你的内部while
循环。因此外部while
循环永远不会结束。虽然有更好的编写代码的方法(如Prune指出的那样),但我会给出一个与原始代码紧密相关的建议:
V1 = True
while V1 is True:
print("Checked for vulnerability")
if my_file.is_file():
print('Virus is still there')
time.sleep(6)
os.system("rm /home/levi/Desktop/Trojan")
else:
print('Virus removed')
V1 = False
print('Did this work')
我仍然删除了外部的while
循环,因为它没有任何目的。当然,除非您要向外循环添加更多内容而不仅仅是其他循环,否则您应该重新添加它。但是,在这种情况下,您应该按以下方式定义代码:
loop = True
V1 = True
while loop is True:
while V1 is True:
print("Checked for vulnerability")
if my_file.is_file():
print('Virus is still there')
time.sleep(6)
os.system("rm /home/levi/Desktop/Trojan")
else:
print('Virus removed')
V1 = False
# do something else here after ending the inner while loop
print('Did this work')
这确保了内部while
循环只执行一次,无论外循环迭代多少次。
以上是关于如何遍历整个python脚本,并且每次更改订单都会运行的主要内容,如果未能解决你的问题,请参考以下文章