mips - 使用python模拟发送用户输入到spim
问题描述
我正在尝试在 python 中编写一个可以运行 SPIM 并将用户输入发送到 SPIM 子例程的程序
我尝试使用
mips=subprocess("spim",stdin=PIPE, stdout=output.txt, stderr=output.txt)
mips.stdin.write(b"10")
mips.stdin.write(b"15")
mips.stdin.write(b"15")
但它完全跳过了等待用户输入
这是 mips 子例程应该做的事情
enter first value: 10
enter second value: 15
enter third value: 15
your Sum is: 40
当我从终端调用它并自己输入值时,这可以正常工作,但是如果我将它作为子进程运行,它会打印以下内容
enter first value:
enter second value:
enter third value:
your Sum is: 101515
spim 执行完成后,101515 似乎正在打印
我该怎么做才能以编程方式将值输入到 spim 虚拟机中
如果它有帮助 SPIM 是 pts 而不是 tty
解决方案
要以编程方式将输入发送到 spin,请将值放在文本文件中并通过管道输入
每个值都换行
所以如果 mips 提示是
“输入字符串”
“输入数字”
文本文件必须如下所示,每个单独的输入都在自己的行中
我的字符串输入
127
在终端中输入以下内容
spim asm-name.s < input-file.txt
推荐阅读
- reactjs - 如何为 css-modules className 使用 props 变量?
- php - 如何解决错误:尝试使用 Prepared Statement PHP 访问类型为 null 的值的数组偏移量
- python - 我想为同名订单创建一个分组?
- sweetalert - Sweetalert 输入将类添加到输入类型
- c++ - 我可以在 vs2015 中使用 tensorflow c++ 库(在 vs2019 中编译)吗?
- tfs - TFS Release - 获取给定环境的可用版本列表
- salesforce - 问:全方位渠道状态不允许我将状态更改为“可用”。我已登录,为什么我无法从“离线”更改状态?
- python - 尝试将 html 转换为 pdf 时,列被切掉
- android - 如何在图标启动器 kotlin 中创建徽章编号
- simulation - 在贝叶斯模拟中,为什么在模型中对具有先验的参数使用固定值?