将多个输入值传递给子流程

时间:2019-07-08 18:41:02

标签: python python-3.x

我有一个外部程序(即,不可更改),该程序需要三个输入值<a>, <b>, and <c>(提示)。

$ COMMAND
A: <a>
B: <b>
C: <c>

我想像这样使用subprocces.run来调用该程序。

result = subprocess.run(
    "COMMAND", shell=True, stdout=subprocess.PIPE).stdout.decode('utf-8').split('\n')

如何传递这些输入值?

到目前为止,我已经尝试做这样的事情。

(a)

read, write = os.pipe()
os.write(write, "<a>\n")
os.write(write, "<b>\n")
os.write(write, "<c>\n")
os.close(write)

and

result = subprocess.run(
    "COMMAND", shell=True, stdout=subprocess.PIPE, input=read).stdout.decode('utf-8').split('\n')

(b)

result = subprocess.run(
    "COMMAND", shell=True, stdout=subprocess.PIPE, input="<a>\n<b>\n<c>\n", encoding=ascii).stdout.decode('utf-8').split('\n')

但是,我什么都无法工作...

0 个答案:

没有答案