如何在Python中对整个脚本施加时间限制

2024-10-03 11:18:28 发布

您现在位置:Python中文网/ 问答频道 /正文

用户在javaguipython编辑器中输入python脚本,并可以从编辑器中运行它。有没有办法接受用户的脚本并对整个脚本施加时间限制?在

我很熟悉如何使用函数/信号报警(但我使用的是windows&unix Jython),但我提出的唯一解决方案是将该脚本放在另一个脚本的方法中,在该脚本中我使用setTrace()函数,但这会删除其中全局变量值保持不变的“特性”。也就是说

try:
 i+=1
except NameError:
 i=0

每次执行时,“i”的值递增1。在


Tags: 方法函数用户脚本报警信号windows时间
2条回答

这只是一个猜测,但也许用线程或多处理来包装它?有一个计时器线程,当它超时时会终止它。在

使用threading.Timer在指定的延迟(程序所需的最大持续时间)后在单独的线程中运行函数,并在该函数中使用^{}(注意它在模块thread不是在模块threading中!)在主线程中引发键盘中断异常。在

一个更可靠的方法(万一脚本被塞进一些不可中断的非Python代码中,这样它就会忽略键盘中断)是生成一个“看门狗进程”,以便在需要时非常有力地终止错误的脚本(这样做以及上述方法,并比您使用的延迟稍晚一点,以使编写一个运行其析构函数、atexit函数等的机会(如果可行的话)。在

相关问题 更多 >