我有以下示例:
import subprocess
p = subprocess.Popen("cmd",stdin = subprocess.PIPE, stdout=subprocess.PIPE )
p.stdin.write(b'cd\\' + b'\r\n')
p.stdin.write(b'dir' + b'\r\n')
p.stdin.write(b'\r\n')
while True:
line = p.stdout.readline()
print(line.decode('ascii'), end='')
if line.rstrip().decode('ascii') == 'C:\>': #I need to check at this point if there is new data in the PIPE
print('End of File')
break
我正在听 PIPE 以获取子流程的任何输出,如果没有任何新数据通过 PIPE,我想停止阅读。我想要一个控制语句,告诉我 PIPE 是空的。如果我的流程冻结或以意外结果结束,这将帮助我避免出现问题。