【发布时间】:2019-10-28 11:40:46
【问题描述】:
我一直在尝试让一个子进程在 python 中运行,这需要我回答一个 y/N 提示。
我的代码如下:
process = subprocess.Popen(
[
"yes",
"|",
"mycommand",
"launch"
],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True
)
当我尝试启动此 Popen 命令时,程序挂起。
当我在我的 Mac 终端中运行相同的命令时,它运行良好:
yes | mycommand launch
有什么方法可以默认yes?
【问题讨论】:
-
您的系统有
yes命令吗?mycommand是什么? -
通常,您只会使用
shell=False的子进程调用的参数列表(由于命令行中的管道,这甚至不是您的选择)。尝试使用第一个参数只是字符串"yes | mycommand launch"。
标签: python bash terminal subprocess