命令通过子流程.Popen需要输入,但命令手动运行

2024-09-30 01:33:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试自动化一个过程。如果我手动运行命令“nexec-I$HOST cash status”,我会看到预期的结果。但是,当使用python脚本并运行以下命令时:

p = subprocess.Popen(command, stdout = subprocess.PIPE, shell=True)
runningAppString, err = p.communicate()

脚本挂起是因为出现一个提示,询问用户希望以何种登录类型登录。我可以通过打开stdin管道和p.communicate(input=“3”)来解决这个问题,但我不明白为什么会发生这种情况。另外,当我上周第一次开始编写脚本时,IIRC只使用stdout管道就可以了。为什么会发生这种情况?最好的解决办法是什么?在


Tags: 命令脚本host管道过程statusstdout情况

热门问题