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

如何在5分钟后退出Python3脚本,python,unix,python-3.x,Python,Unix,Python 3.x,我有一个从SD卡复制数据的脚本。由于文件量/文件大小巨大,这可能需要比预期更长的时间。我想在5分钟后退出此脚本。如何做到这一点?如果没有任何示例代码,很难验证这是否有效,但您可以使用以下命令尝试类似的操作: 在代码的开头,定义报警信号的处理程序 import signal def handler(signum, frame): print 'Times up! Exiting..." exit(0) 在开始漫长的过程之前,请在代码中添加如下行: #Install signal

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

如果没有任何示例代码,很难验证这是否有效,但您可以使用以下命令尝试类似的操作:

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

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分钟后,您的程序将收到报警信号,该信号将调用处理程序,处理程序将退出。如果需要,您还可以在处理程序中执行其他操作。

如果没有任何示例代码,很难验证这是否有效,但您可以使用以下命令尝试类似的操作:

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

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分钟后,您的程序将收到报警信号,该信号将调用处理程序,处理程序将退出。如果需要,您还可以在处理程序中执行其他操作。

这里,线程模块非常方便:

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

在这里,线程模块非常方便:

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

您可以尝试将报警信号设置为在5分钟内熄灭,并让报警信号处理程序退出该过程。您是否可以发布一个示例答案,以便我可以检查并选择作为答案。Windows或Unix?如果Unix:Unix,很抱歉在python中是新手,这是带有超时(秒=300)的
吗?
可以解决我的问题吗?您可以尝试将报警信号设置为在5分钟内熄灭,并让报警信号处理程序退出该过程。您是否可以发布一个示例答案,以便我可以检查并选择作为答案。Windows或Unix?如果Unix:Unix,很抱歉是python中的新手,这是带有超时的
(秒=300):
可以解决我的问题吗?