为了账号安全,请及时绑定邮箱和手机立即绑定

python - 连续读取linux命令输出

python - 连续读取linux命令输出

扬帆大鱼 2023-06-06 15:11:03
我有一个提供事件流的命令 - 每隔几秒就有一条新消息。我该如何阅读 python 附带的内容?标准方法与def getMessage(command):     lines = os.popen(command).readlines()         return lines等待命令完成,但在此命令中永远运行。它将继续并每隔几秒将新消息打印到标准输出。我如何将它传递给 python?我想捕获流中的所有消息。
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

您可以逐行读取输出并处理/打印它。同时用于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()


查看完整回答
反对 回复 2023-06-06
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信