Чат в терминале Python: как избежать перезаписи моих текущих неотправленных сообщений в терминале? - PullRequest
0 голосов
/ 12 апреля 2019

Я создаю простой чат на своем терминале между несколькими клиентами, используя Python.Проблема в том, что всякий раз, когда я печатаю сообщение, оно может быть перезаписано входящим сообщением в терминале.Однако это только визуально, так как, завершив мое сообщение и нажав клавишу ввода, все равно отправляет все мое сообщение.Как избежать перезаписи моего сообщения?

Я попытался использовать следующие строки выходного кода для настройки, чтобы напечатать любые входящие сообщения на какой-либо созданной новой строке:

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)
...