猿问

python - 连续读取linux命令输出

我有一个提供事件流的命令 - 每隔几秒就有一条新消息。我该如何阅读 python 附带的内容?

标准方法与

def getMessage(command):
    lines = os.popen(command).readlines()
        return lines

等待命令完成,但在此命令中永远运行。它将继续并每隔几秒将新消息打印到标准输出。我如何将它传递给 python?我想捕获流中的所有消息。


扬帆大鱼
浏览 136回答 1
1回答

森林海

您可以逐行读取输出并处理/打印它。同时用于p.poll检查进程是否结束。def get_message(command):    p = subprocess.Popen(        command,         stdout=subprocess.PIPE,    )    while True:        output = p.stdout.readline()        if output == '' and p.poll() is not None:            break        if output:            yield output.strip()
随时随地看视频慕课网APP

相关分类

Python
我要回答