我正在尝试创建一个命令行聊天应用程序。我希望用户能够在输入消息的过程中接收消息,而不会中断消息。
例如,如果我的程序是:
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
我看过这篇文章,但解决方案将输出排队,直到我完成输入,而我希望输出能够实时打印。
我考虑过:当消息到达时,将用户输入的内容保存到far,清除行,打印新消息,然后打印保存的消息进度。然而,在用户不先按enter键的情况下获取用户输入似乎很困难,而且这种解决方案总体上感觉很粗糙。
我有什么办法可以实现这个目标,还是不可行?
暂无答案!
目前还没有任何答案,快来回答吧!