gpt4 book ai didi

python - 如果可能的话,如何阻止打印到 stdout 打断输入的内容?

转载 作者:行者123 更新时间:2023-11-28 17:46:05 24 4
gpt4 key购买 nike

我有一个基本的 Python 命令行聊天客户端和服务器,但这可能适用于任何语言。我遇到了一个非常明显的问题,我不确定是否有任何解决方法(除了使用 GUI!这会很快解决问题)。当服务器向客户端发送一条消息时,导致客户端 print() 消息,它被插入到该人将要键入他们自己的消息的完全相同的位置,导致它被拆分传入的消息。例如(写成 # 注释以避免奇怪的语法高亮显示):

# Client1: Knock-knock!
# Client2: Who's there?
# Client1: Interrupting cow!
# Client2: Inter
# Client1: MOOOOOOO
# Client2: rupting cow who?

Client2 在键入 Who's there? 后未按回车键。

很明显,有各种各样的解决方法,例如 GUI 上的面板,但我很想知道是否可以在 native 终端/命令提示符中严格执行此操作。在互联网上搜索解决方案时,我无法远程找到任何类似的东西!谢谢!

最佳答案

我会使用类似 https://pypi.python.org/pypi/blessings/ 的东西它可以让你设置一个带有光标的终端。

当您想要从另一个连接打印输出时,您可以将光标“向上”移动,然后当您想要获取输入时将其向下移动。

如果你想变得疯狂,你可以使用终端控制命令(在 Windows 上你需要 colorama)自己做所有这些魔术,这将让你做这样的事情:

print("\033[6;3HHello")

将光标移动到 x,y。这需要一个 ansi 终端。

关于python - 如果可能的话,如何阻止打印到 stdout 打断输入的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com