📅  最后修改于: 2023-12-03 15:25:09.526000             🧑  作者: Mango
使用subprocess
模块中的Popen
函数可以在Python中运行子进程,同时可以实时输出子进程的结果。
以下是一个示例代码,该示例代码启动一个bash shell,并输出其中的命令输出结果。
import subprocess
cmd = ['bash', '-c', 'echo "Hello world"; ls']
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while True:
output = process.stdout.readline().decode().strip()
if output == '' and process.poll() is not None:
break
if output:
print(output)
error = process.stderr.readline().decode().strip()
if error == '' and process.poll() is not None:
break
if error:
print(error)
rc = process.poll()
在上述代码中,我们使用subprocess.Popen
函数启动一个bash shell,并将输出重定向到Python中的管道。在while
循环中,我们使用process.stdout.readline()
和process.stderr.readline()
函数按行读取管道,以获得子进程的实时输出结果。
最后,我们使用process.poll()
来检查子进程的状态,并获取其退出代码。
以上是关于Python实时输出子进程的介绍,希望能帮助到您。