使用Python';s子进程,用于读取通过stdin发送的阻塞命令的输出

使用Python';s子进程,用于读取通过stdin发送的阻塞命令的输出,python,subprocess,stdout,stdin,popen,Python,Subprocess,Stdout,Stdin,Popen,我有以下代码: proc = subprocess.Popen(["adb", "shell"], stdout.subprocess.PIPE, subprocess.PIPE) proc.stdin.write("cat /proc/kmsg") 该命令不断向标准输出数据,我感兴趣的是在某个时间停止该命令(CTRL-C),并读取整个输出的数据。 现在我唯一能做的就是proc.stdout.readline(),希望下一行不是空的。 我感兴趣的是停止该命令并读取到目前为止我已使用的任何行。只

我有以下代码:

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()
即可完成阅读。

不客气。请考虑单击此答案左侧的复选标记以“接受”它。欢迎来到SO。