如何在Shell上出现提示时按下'enter'进行python脚本

Zvo*_*ran 7 python linux

我想自动升级程序.

我用Python运行这段代码:

import subprocess
subprocess.call('./upgrade')
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我从shell获得升级程序成功启动的输出,然后我得到'按Enter继续'.我如何自动化这个过程,以便python脚本在发布时自动"按下"输入?我需要在手术过程中做两次.我需要在Linux上完成此操作,而不是Windows,因为它在这里被要求: 生成键盘事件 此外,这需要在Shell提示输入后专门完成.谢谢你的帮助.我在这里找不到解决方案: 按enter键作为命令输入

Jul*_*arz 13

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

例如,要将"enter"键发送到以下程序test_enter.py:

print "press enter..."
raw_input()
print "yay!"
Run Code Online (Sandbox Code Playgroud)

您可以执行以下操作:

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

您可能会发现"我如何写入python子进程'stdin"的答案很有帮助.

  • 从子流程模块(python 3)引用有关“输入”的信息:如果self.universal_newlines为True,则应为字符串;否则为false。如果为False,则“输入”应为字节`。所以:`input = b'\ n'` (4认同)