import subprocess
subprocess.run(['java','-jar','file.jar','*req_params_for_jar*'])
我正在使用 AWS 胶水在 python shell 中运行它。在运行 jar 文件时,它会在日志上打印接受许可协议,并一直等待交互式输入 Y 或 yes。我如何在上面的代码中传递这个?
答案 0 :(得分:0)
尝试使用 subprocess.Popen
写入标准输入。
代码示例,从您的原始代码修改而来:
import subprocess
child = subprocess.Popen(['java', '-jar', 'file.jar','req_params_for_jar'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
child.stdin.write(b"Y")
print(child.communicate()[0])
child.stdin.close()
在线试用(grep 示例)here。