首页 > 解决方案 > 将多个输入值传递给子进程

问题描述

我有一个外部(即不可更改)程序,它采用三个输入值<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')

如何传递这些输入值?

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

(一个)

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')

(二)

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

但是,我什么都做不了……

标签: pythonpython-3.x

解决方案


推荐阅读