Dor*_*gel 5 python interactive-shell
我在 Windows 上有一个交互式 shell 应用程序。我想编写一个 python 脚本,它将向该 shell 应用程序发送命令并读回响应。不过,我想以交互方式执行此操作,即我希望 shell 应用程序随着 python 脚本的运行而继续运行。
我努力了
self.m_process subprocess.Popen(path_to_shell_app,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE,universal_newlines=True)
Run Code Online (Sandbox Code Playgroud)
然后使用 stdin 和 stdout 发送和接收数据。似乎外壳应用程序正在打开,但我无法与其通信。
我究竟做错了什么?
接下来你应该使用通信
\n\nstdout, stderr = self.m_process.communicate(input=your_input_here)\nRun Code Online (Sandbox Code Playgroud)\n\n来自子流程模块文档
\n\n\n\nPopen.communicate(input=None)
\n\n
\n 与进程交互:将数据发送到 stdin。从 stdout 和 stderr 读取数据,直到到达文件末尾。\n 等待进程终止。可选输入参数应该是要发送到子进程的字符串,或者 None(如果不应该向子进程发送数据)。Communications() 返回一个元组 (stdoutdata, stderrdata)。
\n\n请注意,如果要将数据发送到进程\xe2\x80\x99s stdin,则需要\n 使用 stdin=PIPE 创建 Popen 对象。同样,要在结果元组中获取除 None 之外的任何内容,您也需要给出 stdout=PIPE\n 和/或 stderr=PIPE。
\n
| 归档时间: |
|
| 查看次数: |
5479 次 |
| 最近记录: |