Reputation: 1029
I'm trying to write a (command line) python program that will accept input from the user while still printing data above it. I am trying to make a chat program.
Example:
[stuff prints here]
hello
warning: the time is 27:64
Please enter your input: asdf
So I have typed the asdf
, but while I am typing, the output above continues to update. If I want, I can continue to type while the output is being generated. Then if I press enter, something else happens. The input field should always stay below the the outputted text; if more text is displayed, the input field gets pushed down (but its contents remain in place).
My thoughts were:
I realize that a GUI would be much easier to do. I'll probably end up just doing this with tkinter. But I was nevertheless wondering if this sort of thing is possible in python on the command line.
Thanks.
EDIT:
I forgot to mention that I do know how to erase text with carriage returns (\r
). The problem really is making sure that when I erase the line, I don't clear the user input: So if a new line comes up while I am typing, I don't want the input I have so far to be erased.
Upvotes: 11
Views: 4451
Reputation: 830
The classic approach to such problem would be:
Upvotes: 1