Python循环超时



我有一个Python脚本,看起来像这样:

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

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

所以我的问题是:我该如何在循环中实现超时函数,这样如果它花费了20秒以上,就可以跳到下一个了?

您可以将其定义为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-教程/python-timeout-a-function/

由于您使用的是Windows,您可能需要查看此较旧的线程python:相当于SIGALRM 的windows

最新更新