使用Python的子进程读取通过stdin发送的阻止命令的输出

时间:2018-07-29 09:34:20

标签: python subprocess stdout stdin popen

我有以下代码:

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

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

1 个答案:

答案 0 :(得分:1)

只需先致电proc.kill(),然后proc.communicate()即可完成阅读。