如何为子流程提供输入并在子流程中实时传输数据。 python3

时间:2019-02-18 08:19:30

标签: linux python-3.x subprocess

我有一个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='')

坚持了几天,我是否可以修改它以接受输入并传输数据?

0 个答案:

没有答案