python中subprocess.PIPE上的非阻塞读取
我正在使用子进程模块启动子进程并连接到它的输出流(stdout)。我希望能够在其标准输出上执行非阻塞读取。有没有办法让.readline非阻塞或在我调用之前检查流上是否有数据.readline
?我希望这是可移植的,或至少在Windows和Linux下工作。
这是我现在如何做到的(.readline
如果没有数据可用,则阻止它):
p = subprocess.Popen('myprogram.exe', stdout = subprocess.PIPE)output_str = p.stdout.readline()