python-3.x - 如何将同时运行的 python 程序的输出和输入重定向到 __main__ python 程序
问题描述
这个问题可能看起来有点晦涩,对此我深表歉意。我知道这里通常需要更精确的问题,所以我已尽力为您提供您可能需要的所有信息。
并非完全必要的信息
我有一个正在处理的项目,下一步是创建一个交互式 python CLI。简而言之,我希望能够操纵命令行的外观和功能。命令行本质上将分为 2 部分,顶部和底部。
顶部将用于显示有关主要 python 进程和其他任何事情的信息。底部将用于接受用户输入和回显输出,并充当普通 cmd
主要问题
我遇到的问题是当用户想要运行外部程序(例如 .exe、.bat 或 .py 文件)时,我想将辅助进程的输出重定向到临时文件。然后主进程将从临时文件中读取,对其进行格式化并将其打印到 cmd 的下半部分。
我还想在辅助进程请求输入时获取用户输入,并将其重定向到另一个临时 input.txt 文件以供辅助进程读取。
到目前为止,我已经尝试使用 subprocess 包来处理调用外部程序这样 -> a.exe < input.txt > output.txt
,但是我找不到任何具体的方法来做到这一点。尤其是当辅助进程请求时,仅将用户输入从进程 1 传送到进程 2。我不确定这两个进程是否有任何这样的方式可以相互交谈。
在这一点上,我真的没有太多代码,除了像这样的一个小片段,它没有做它应该做的事情。我什至没有让事情的输入端工作,因为我只是不知道从哪里开始。
import subprocess
# Open the output file
outf = open('output.txt', 'w+')
# Create a call to another python script
subprocess.run(['python', 'test.py'], stdout=outf)
line = outf.readlines()
print(f'>> {line}')
我期待这个
>> <test.py output>
但我什么也得不到。
我想要完成的示例图
因为我还不能发布图片,你可以在这里找到我的设计计划-> https://imgur.com/a/eh1Z0vE
只是为了澄清
我不是要求有人为我编写代码或类似的东西,我只是在问是否有人能指出我正确的方向——也许是一个已经做过类似事情的项目,一个显示类似内容的博客。
任何事情都会有帮助,谢谢。
解决方案
推荐阅读
- frameworks - 使用 Robot Framework 运行示例脚本
- html - CSS网格没有填满剩余空间
- c++ - 对“任何模板参数既没有推导也没有明确指定,模板参数推导失败”这句话的混淆。
- python - Kivy(Python)在使用 kv 文件的 add_widget 后出现 AttributeError 问题
- django - 登录成功后的Django重定向
- certificate - 自签名证书 bigbluebutton
- vscode-extensions - 如何在 VSCode 扩展 Webview 中显示格式化的 JSON
- elasticsearch - 检查所有索引分片已从 Elastic Search 中删除
- javascript - 如何在 JSX 中动态更新样式
- javascript - 单击时调整 div 的大小