使用提示功能时输出文本

2024-04-20 04:56:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个小的交互式命令行应用程序,其中我使用prompt\u工具箱中的prompt函数来读取用户命令。有些命令会将线程侦听器打开到端口,并在它正在侦听的端口上出现某些内容时打印到屏幕上。我的问题是,这个打印会弄乱用户正在输入的当前行,也就是说会覆盖文本(缓冲区仍然在那里,所以你可以执行命令,但你不会看到什么是键入的)。我想要的行为是让听者把文本打印在输入行的上方一行。你知道吗

或者,换言之,存储当前写入的行,清除行和carrage return,打印收到的消息,newline然后打印存储的行。使用prompt\u toolkit可以吗?你知道吗

谢谢


Tags: 端口函数命令行用户文本命令应用程序内容
1条回答
网友
1楼 · 发布于 2024-04-20 04:56:58

我自己找到了答案,看了文件:)

如果将promt()调用包装在with patch_stdout():块中,那么prompt\u工具箱的行为将完全符合我的要求。你知道吗

所以解决办法是

from prompt_toolkit import prompt
from prompt_toolkit.patch_stdout import patch_stdout

with patch_stdout():
    cmd = prompt("> ")

相关问题 更多 >