我有一个使用 os.popen4 执行某些命令的脚本。问题是正在执行的某些时间命令将需要用户输入(“y”或“n”)。我正在阅读 stdout/stderr 并打印它,但似乎命令中的问题没有被打印并且它挂起。为了使它工作,我不得不盲目地将“n”写入标准输入。有人可以指导如何处理吗?
代码不起作用:
(f_p_stdin, f_p_stdout_stderr) = os.popen4(cmd_exec,"t")
cmd_out = f_p_stdout_stderr.readlines()
print cmd_out
f_p_stdin.write("n")
f_p_stdin.close()
f_p_stdout_stderr.close()
工作代码:
(f_p_stdin, f_p_stdout_stderr) = os.popen4(cmd_exec,"t")
cmd_out = f_p_stdout_stderr.readlines()
f_p_stdin.write("n")
f_p_stdin.close()
print cmd_out
f_p_stdout_stderr.close()
注意:我知道它已被折旧并且使用了子流程模块,但现在我不知道如何使用它。因此,如果有人能帮助我使用 os.popen4 处理它,我将不胜感激。我想捕获问题并处理来自用户的输入并执行它。