我有一个类似于这样的Python脚本:
for x in range(1000,40000):
try:
some_function(x)
some_other_function(x)
except Exception, e:
print e
pass
我知道处理这样的错误不是好习惯,但这是一个我只会使用一次的脚本。无论如何,我注意到循环有时会卡在一个特定的id(x)上并冻结几个小时。
所以我的问题是:如何在循环中实现超时功能,如果超过20秒,则跳到下一个?
答案 0 :(得分:1)
您可以将其定义为TimeoutException
except TimeoutException, e:
print e
pass
如果你想让它只持续20秒我建议在python中查找创建信号处理程序。下面是一个示例和python文档的链接。 https://docs.python.org/library/signal.html
由于您使用的是Windows,因此您可能需要查看此较旧的主题 python: windows equivalent of SIGALRM