python - 为 subprocess.Popen 手动处理标准输入
问题描述
我正在尝试制作一个终端仿真器,为此我需要处理stdin/stdout/stder
将它们重定向到 GUI
我已经设法处理stdout and stderr
了,问题是stdin
。
我想要一个每次stdin
读取时调用的函数,这样我就可以请求用户输入。
我用
subprocess.Popen("command", shell="True")
我尝试使用临时文件和编辑文件read
,但问题是如果我理解正确(从源代码)获取文件并重新打开它以使用它。readline
readlines
subprocess.Popen
我也尝试过创建像对象一样的自定义文件,但正如我之前所说,subprocess.Popen
获取文件并尝试重新打开它,但由于我的对象是一个假文件,它不起作用
我怎样才能创建一个标准输入重定向器?
类似的东西
class StdinRediector():
def read():
input = gui.ask_input()
return input
subprocess.Popen(
"command",
shell="True",
stdin=StdinRediector,
)
我不要求,stdout and stderr
因为这里已经有答案:
但是这些并没有谈论stdin
哪个是我的问题。
这不是重复的
解决方案
推荐阅读
- state-machine - 状态正在改变,但 Xstate 中未触发转换
- python - 使用python列出来自Windows文件共享的所有文件名
- c - 将单个数字乘以C中的多维数组
- r - 通过 group dplyr R 添加 value=0 的行以具有相同的行数
- java - 在 java 中播放 .WAV 文件时出现问题
- php - 这个怎么不解密?
- ruby-on-rails - 在 Rails 中使用 JSONAPI::Resource 从 JSON 响应正文中解析数组
- java - 使用 JpaRepository 创建类似于 findById 的 findByEmail 方法
- c# - 在 Powershell 中没有得到任何结果,怀疑是异步问题
- javascript - 为什么即使我在访问时包含不必要的反斜杠,访问属性也会起作用?