在Python3中实现超时的最简单方法
如何为循环中的每个迭代设置计时器在Python3中实现超时的最简单方法,python,python-3.x,timer,Python,Python 3.x,Timer,如何为循环中的每个迭代设置计时器 for i in range(0,n): subprocess.call() 如果调用花费的时间超过指定的时间,则应取消调用,循环应继续到下一次迭代。因此,它将防止循环卡在函数/子进程调用中。您可以在子进程执行时使用Popen而不是调用,让Python代码继续运行。您可以使用设置计时器。把这些放在一起,你会得到如下结果: def handler(signum, frame): raise MyError signal.signal(signa
for i in range(0,n):
subprocess.call()
如果调用花费的时间超过指定的时间,则应取消调用,循环应继续到下一次迭代。因此,它将防止循环卡在函数/子进程调用中。您可以在子进程执行时使用
Popen
而不是调用,让Python代码继续运行。您可以使用设置计时器。把这些放在一起,你会得到如下结果:
def handler(signum, frame):
raise MyError
signal.signal(signal.SIGALRM, handler)
for i in range(0,n):
p = subprocess.Popen(...)
try:
signal.alarm(1) # 1 second timer
p.wait()
signal.alarm(0) # clear the timer
except MyError:
p.kill()
“若某件事情花费的时间超过了指定的时间,那个么循环应该继续到下一次迭代。”你们能解释一下吗?什么是“某物”?“继续前进”是什么意思?在我看来,这个问题在表达想法的意义上是非常清楚的。让我们一个接一个地执行多个任务。如果任务需要更长时间,则让该任务取消,并可能启动另一个任务。