一尘不染

在Shell上提示时如何使python脚本按'enter'

linux

我想自动升级程序。

我在Python中运行以下代码:

import subprocess
subprocess.call('./upgrade')

当我这样做时,我从外壳程序获得升级程序已成功启动的输出,然后得到“按Enter继续”。我将如何自动执行此过程,以便在提示时python脚本自动“按”回车?我需要在程序执行两次。我需要在Linux而不是Windows上完成此操作,因为在这里它被询问:
生成键盘事件 另外,这需要在Shell提示输入Enter之后专门完成。谢谢你的帮助。我在这里找不到解决方案:
按Enter作为命令输入


阅读 856

收藏
2020-06-07

共1个答案

一尘不染

您可以使用subprocess.Popensubprocess.communicate将输入发送到另一个程序。

例如,将“ enter”键发送到以下程序test_enter.py

print "press enter..."
raw_input()
print "yay!"

您可以执行以下操作:

from subprocess import Popen, PIPE
p = Popen(['python test_enter.py'], stdin=PIPE, shell=True)
p.communicate(input='\n')

您可能还会发现“如何编写python子进程的stdin”的答案也很有帮助。

2020-06-07