我正在使用Python在多个客户端之间的终端上创建简单的聊天。 问题是,每当我键入一条消息时,它就会被终端中的传入消息覆盖。但是,这只是视觉上的,当完成我的消息并按Enter时,仍然发送我的整个消息。 如何避免我的邮件被覆盖?
我尝试使用以下输出调整代码行,目的是在创建的新行上打印所有传入消息:
sys.stdout.write("\033[F") #back to previous line
print("\n") #create a new line between second last and last line
print(msg) #print on new line any incoming messages
或这样:
print("\r") #go back to line start
print("\n") #create a new line after last line (this also pushes any unfinished message to this new last line)
sys.stdout.write("\033[F") #back to previous line (empty now)
print(msg) #print on new line any incoming messages
但是实际上并没有按预期工作。 我还尝试仅在输入缓冲区(=最后一行?)为空时才写收到的消息。我没有此代码了,因为它无法正常工作,但它看起来像这样:
while sys.stdin.buffer.read():
#do nothing
print(msg)
答案 0 :(得分:0)
您需要为聊天输入位置设置一个固定位置。使用curses是构建此类输入应用程序最简单的方法。这是仅使用python Python console application - output above input line
的类似问题