从Python程序向命令行提示符发送输入。

5

我相信这是一个非常简单的问题,但我一直找不到简单的答案。

我正在运行一个终止AWS集群(使用starcluster)的Python程序。 我只是从我的Python程序中使用subprocess调用一个命令,类似于以下内容。

subprocess.call('starcluster terminate cluster', shell=True)

实际命令对于我的问题来说并不重要,但提供了一些背景。这个命令将开始终止集群,但在继续之前会提示是否确定,如下:

Terminate EBS cluster (y/n)? 

我该如何在我的Python程序中自动输入“yes”作为对此提示的输入?

2
https://dev59.com/M2nWa4cB1Zd3GeqP4dOT#12982539 - Amit
3个回答

9

谁先说的? :) 好吧,我删掉了我的答案,因为它比你的少详细。 - mguijarr
@mguijarr 这就是为什么写起来花费了更长的时间 :) 谢谢您,先生。 - famousgarkin

5
您可以使用Popen写入stdin:
您可以使用Popen来向stdin写入内容:
from subprocess import Popen, PIPE
proc = Popen(['starcluster', 'terminate', 'cluster'], stdin=PIPE)
proc.stdin.write("y\r")

0

最简单的方法可能是查看目标程序的文档。通常可以设置一个标志来回答所有提示,例如:apt-get -y install


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接