首页 > 解决方案 > 使用 Python 的子进程读取通过 stdin 发送的阻塞命令的输出

问题描述

我有以下代码:

proc = subprocess.Popen(["adb", "shell"], stdout.subprocess.PIPE, subprocess.PIPE)
proc.stdin.write("cat /proc/kmsg")

该命令不断将数据输出到标准输出,我有兴趣在某个时间停止命令(CTRL-C)并读取整个输出数据。
现在我唯一能做的就是proc.stdout.readline()并希望下一行不是空的。
我有兴趣停止命令并阅读到目前为止我已经使用的所有行。

标签: pythonsubprocessstdoutstdinpopen

解决方案


只需打电话proc.kill()完成proc.communicate()阅读。


推荐阅读