我试图让用户使用raw_input()在控制台上输入命令,这很好用.问题是我有后台线程偶尔会将日志信息输出到屏幕上,当它们发生时它们会搞砸输入提示(因为输出会转到光标恰好在哪里).
这是一个小Python程序,说明了我的意思.
#!/usr/bin/env python
import threading
import time
def message_loop():
while True:
time.sleep(1)
print "Hello World"
thread = threading.Thread(target = message_loop)
thread.start()
while True:
input = raw_input("Prompt> ")
print "You typed", input
Run Code Online (Sandbox Code Playgroud)
这是我运行它时的样子:
Prompt> Hello World
Hello World
Hello World
Hello World
test
You typed test
Prompt> Hello World
Hello World
Hello World
hellHello World
o
You typed hello
Prompt> Hello World
Hello World
Hello World
Hello World
Run Code Online (Sandbox Code Playgroud)
我想要的是提示与线程的输出一起移动.像这样:
Hello World
Hello World
Prompt> test
You typed test
Hello World …Run Code Online (Sandbox Code Playgroud)