Python 如何将字符串传递到子流程模块?
我有一个可执行文件,将提示不同的选项,例如;可执行文件:sample.exe在运行sample.exe时,会提示我输入“帮助”、“显示”、“退出”选项 我需要输入所有这些,并检查输出是否有有效的输出 我正在使用子进程运行Python 如何将字符串传递到子流程模块?,python,python-3.x,command-line,subprocess,Python,Python 3.x,Command Line,Subprocess,我有一个可执行文件,将提示不同的选项,例如;可执行文件:sample.exe在运行sample.exe时,会提示我输入“帮助”、“显示”、“退出”选项 我需要输入所有这些,并检查输出是否有有效的输出 我正在使用子进程运行sample.exe 我可以使用subprocess.communicate(input='help') 但是除了退出之外,所有选项都不会结束控制台并仍然等待输入 试用代码: p_run = subprocess.Popen(['sample.exe'], shell=True,
sample.exe
我可以使用subprocess.communicate(input='help')
但是除了退出之外,所有选项都不会结束控制台并仍然等待输入
试用代码:
p_run = subprocess.Popen(['sample.exe'], shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
p_run_out = p_run.communicate(input=b'help')
print(p_run_out)
这里它卡在p\u run\u out=p\u run.communicate(input=b'help')
中,因为sample.exe
等待另一个输入。只有通过quit
我如何传递下一个命令?如何获取上一个命令(“帮助”)的输出?您可以传递多个命令,并且只读取第一个命令的输出 更新代码:
p_run = subprocess.Popen(['sample.exe'], shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
p_run_out = p_run.communicate(input=b'help\nquit')[0]
print(p_run_out)
您需要更加清楚地回答问题,包括您尝试过的代码和预期结果。@PacketLoss我刚刚更新了详细信息