我有一个提供事件流的命令 - 每隔几秒就有一条新消息。我该如何阅读 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()
添加回答
举报
0/150
提交
取消