使用 Python 的子进程读取通过标准输入发送的阻塞命令的输出

using Python's subprocess for reading the output of a blocking command sent through stdin

我有以下代码:

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

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

只需调用 proc.kill() 然后 proc.communicate() 即可完成阅读。