如何在不中断用户输入的情况下打印输出?

我正在尝试创建一个命令行聊天应用程序。我希望用户能够在用户输入消息的过程中接收消息而不会中断消息。

例如,如果我的程序是:

from time import sleep
from threading import Thread

def print_received_message():
    counter = 0
    while True:
        print(counter)
        counter += 1
        sleep(1)

t = Thread(target = print_received_message)
t.start()

while True:
    my_message = input('>')
    print(my_message)

而我目前正在输入我的消息 2 秒,我希望看到以下内容:

0
1
2
> Currently typ

如果我在 4 秒后完成输入和发送消息,我希望看到:

0
1
2
3
4
Currently typing
>

但是,我目前看到:

0
> 1
Cur2
rent3
ly4
5

我看过 this 帖子,但该解决方案将输出排入队列,直到我完成输入,而我希望实时打印输出。

我考虑过:当消息到达时,将用户输入的内容保存到far,清除行,打印新消息,然后打印保存的消息进度。但是,在用户不按 Enter 键的情况下获取用户输入似乎很困难,而且这个解决方案总体上感觉很黑。

有什么办法可以实现这个目标,还是不可行?

bin_________________ 回答:如何在不中断用户输入的情况下打印输出?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/30919.html

大家都在问