如何在5分钟后退出Python3脚本

时间:2015-05-12 08:48:09

标签: python unix python-3.x

我有一个从SD卡复制数据的脚本。由于文件/文件大量庞大,这可能需要比预期更长的时间。我想在5分钟后退出这个脚本。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

很难确定这会在没有任何示例代码的情况下发挥作用,但您可以使用signal module尝试这样的事情:

在代码的开头,定义警报信号的处理程序。

import signal

def handler(signum, frame):
    print 'Times up! Exiting..."
    exit(0)

在开始漫长过程之前,请在代码中添加如下所示的行:

#Install signal handler
signal.signal(signal.SIGALRM, handler)

#Set alarm for 5 minutes
signal.alarm(300)

在5分钟内,您的程序将收到警报信号,该信号将调用处理程序,该处理程序将退出。如果需要,您还可以在处理程序中执行其他操作。

答案 1 :(得分:1)

这里,线程模块随手可得:

import threading

def eternity(): # your method goes here
    while True:
        pass

t=threading.Thread(target=eternity) # create a thread running your function
t.start()                           # let it run using start (not run!)
t.join(3)                           # join it, with your timeout in seconds