如何解决如何在python中发生特定超时后终止进程?
我有一个python函数,该函数具有可能会陷入无限循环的循环。 我想终止该功能并在超出时间限制(例如10秒)时显示错误。
例如这是包含无限循环的功能
def myfunc(data):
while True:
data[0]+=10
return data
data=[57,6,879,79,]
从这里打电话
print(myfunc(data))
我希望它完全终止进程并打印消息。我正在Windows上工作。
任何参考或资源都会有所帮助。
谢谢
解决方法
也许您可以尝试使用func-timeout
Python软件包。
您可以使用以下命令进行安装:
pip install func-timeout
,
此代码将解决您的问题“如果超过10秒的时间限制,我想终止该功能并显示错误。”
from time import process_time as timer
def whatever(function):
start = timer()
infinite loop here:
end = timer()
(your code here)
if end >= 10:
print(whatever)
return
故障:使用时间模块可以执行以下操作
在程序开始时,导入方法
在(无限循环)开始时,start = timer()将调用process_time并将值保存为start。
end = timer()将继续将调用发送到process_time并存储新值
将需要的代码放入循环中
如果end> = 10:将在每次循环迭代时继续检查计数
打印(任何)
如果在下一个循环中检查时间运行10秒,则return会通过转义自动终止该功能。
如果名为idk的IDK继续在后台运行,并且您必须继续将其停止,则不会说“如何停止process_time”。但这应该可以回答您的问题。您可以根据我给您的信息进行进一步调查。
注意: 这并不是为了生成“精确”时序而设计的,因为它需要找到更复杂的方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。