如何在 Python 子进程中模拟按键?

Sir*_*Lam 6 python shell subprocess

场景是,我有一个 Python 脚本,其中一部分是使用以下代码执行外部程序:

subprocess.run(["someExternalProgram", "some options"], shell=True)

当外部程序完成时,它要求用户“按任意键退出”。

由于这只是我的脚本中的一个步骤,因此代表用户退出对我来说会更好。

是否有可能实现这一目标?如果可以,如何实现?

Tin*_*yen 6

from subprocess import Popen, PIPE

p = Popen(["someExternalProgram", "some options"], stdin=PIPE, shell=True)
p.communicate(input=b'\n')
Run Code Online (Sandbox Code Playgroud)

如果你想捕获输出和错误日志

from subprocess import Popen, PIPE
    
p = Popen(["someExternalProgram", "some options"], stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
output, error = p.communicate(input=b'\n')
Run Code Online (Sandbox Code Playgroud)

请记住输入必须是字节对象