如何同时实时显示和存储子进程的输出

时间:2014-02-27 17:08:28

标签: python linux multithreading subprocess pipe

我想显示和解析更长进程的输出。例如,我想运行apt-get update并在运行时显示进度条。

到目前为止,我正在使用此代码,该代码可靠地运行并在进程完成后返回stdout,stderr和returncode。

def run(cmd):
    child = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout, stderr = child.communicate()
    returncode = child.returncode
    return stdout, stderr, returncode

我的问题是我想在进程仍在运行时显示某种进度条(例如简单的行计数器)或向用户显示stdout和stderr。

我已经阅读了以下问题,但我仍然不清楚我该怎么做:

我是否需要在while循环中使用某种具有睡眠功能的计时器?或者我应该使用多线程?

0 个答案:

没有答案