使用带有超时的模块“subprocess”
在Python编程中,通常需要执行任意命令并检索其输出。 “subprocess”模块为此提供了方便的功能,但缺乏对超时的支持。当命令预计长时间运行时,这可能是一个重大限制。
以下代码演示了在 Python 中实现超时的简单方法:
from subprocess import check_output try: output = check_output(cmd, stderr=STDOUT, timeout=seconds) except CalledProcessError as e: handle_error(e)
check_output 函数, Python 3.3 中引入,允许调用者指定超时(以秒为单位)。如果命令超过指定时间,则会引发 CalledProcessError 异常。命令的输出以字节字符串的形式返回到“output”变量中。
对于 Python 2.x 用户,可以使用 subprocess32 反向移植模块来提供类似的功能。
上述解决方案消除了与进程显式通信的需要,并提供了更直接的处理超时的机制。
以上是如何使用带有超时功能的 Python 的'subprocess”模块?的详细内容。更多信息请关注PHP中文网其他相关文章!