Python循环超时

时间:2012-07-12 16:16:14

标签: python timeout

我有一个类似于这样的Python脚本:

for x in range(1000,40000):
    try:
       some_function(x)
       some_other_function(x)
    except Exception, e:
       print e
       pass

我知道处理这样的错误不是好习惯,但这是一个我只会使用一次的脚本。无论如何,我注意到循环有时会卡在一个特定的id(x)上并冻结几个小时。

所以我的问题是:如何在循环中实现超时功能,如果超过20秒,则跳到下一个?

1 个答案:

答案 0 :(得分:1)

您可以将其定义为TimeoutException

except TimeoutException, e:
print e
pass

如果你想让它只持续20秒我建议在python中查找创建信号处理程序。下面是一个示例和python文档的链接。 https://docs.python.org/library/signal.html

https://web.archive.org/web/20130511171949/http://pguides.net/python-tutorial/python-timeout-a-function/

由于您使用的是Windows,因此您可能需要查看此较旧的主题 python: windows equivalent of SIGALRM