我有一个shell脚本,要求输入。我通过子流程调用它。 (该脚本将运行很长一段时间,在这种情况下,通过stdin.write()存储输入并将其传递给p.communicate()不会取得成果,因为我一开始就不会知道发生了什么到程序结束时,我会 最后获得全部结果。我有办法克服吗?。
这是我用来获取通过子流程执行的实时脚本流(不要求用户输入)的代码段
p = subprocess.Popen([exe_command], bufsize=0,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
while True:
output = p.stdout.readline()
if output.decode() == '' and p.poll() is not None:
break
print(output.decode('utf-8'), end='')
坚持了几天,我是否可以修改它以接受输入并传输数据?