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

如何在Python子流程中模拟按键?,python,shell,subprocess,Python,Shell,Subprocess,场景是,我有一个Python脚本,其中一部分是使用以下代码执行外部程序: subprocess.run([“someExternalProgram”,“someoptions”],shell=True) 当外部程序完成时,它要求用户“按任意键退出” 因为这只是我脚本中的一个步骤,所以我最好代表用户退出 是否有可能实现这一目标?如果有,如何实现 from subprocess import Popen, PIPE p = Popen(["someExternalProgram", "some o

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

subprocess.run([“someExternalProgram”,“someoptions”],shell=True)

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

因为这只是我脚本中的一个步骤,所以我最好代表用户退出

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

from subprocess import Popen, PIPE

p = Popen(["someExternalProgram", "some options"], stdin=PIPE, shell=True)
p.communicate(input=b'\n')
如果要捕获输出和错误日志

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')

这回答了你的问题吗?我想我们需要在'\n'之前加上'b',因为看起来输入需要一个类似字节的对象。我尝试了
p.communicate(input=b'\n')
,它成功了!谢谢。很高兴它成功了,编辑了我的评论
p.communicate()
还执行
p.wait()