如何防止python子进程中的无限循环?

时间:2016-12-09 11:47:48

标签: python-2.7 subprocess

我正在编写一个使用bash命令执行另一个程序的python脚本。

我正在使用subprocess.Popen()函数。但是在某些情况下,外部程序会给我一个错误并尝试无限地运行相同的注释。

如何捕获该错误并中断Popen功能。

假设程序将其错误作为输出。

1 个答案:

答案 0 :(得分:0)

您可以使用poll()communicate()功能。一旦进程终止,这些方法将返回returncode。只要程序正在运行,返回码为None

您可以尝试使用以下代码

from subprocess import Popen

process = Popen('bash your_script.sh')

while process.poll() is None:
     print 'keep running'

process.terminate()