【发布时间】:2023-12-02 08:10:01
【问题描述】:
我需要在 python 中包装一个程序并提供输入和打印输出。但是,如果它给它一行输入,它似乎将其用作输入,直到程序终止。我用 C 语言编写了一个非常基本的程序(称为 inout),它接受两行输入并打印到标准输出。
from subprocess import Popen, PIPE, STDOUT
p = Popen(['inout'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
out, err = p.communicate(input=b'Why is this twice')
print(out)
print("done")
这个程序的输出是:
b'Why is this twice\r\nWhy is this twice\r\n'
done
我怎样才能阻止这种情况发生?
【问题讨论】:
-
inout 的来源是什么样的?
-
@dano 它实际上是 c++ 字符串;获取线(cin,in); cout
标签: python io subprocess stdin