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