当其他进程打印输出时,是否可以使python input()粘贴到控制台窗口的底部?
给定一个不断打印到stddout的后台进程,是否有方法调用控制台底部的当其他进程打印输出时,是否可以使python input()粘贴到控制台窗口的底部?,python,command-line-interface,curses,Python,Command Line Interface,Curses,给定一个不断打印到stddout的后台进程,是否有方法调用控制台底部的input() 导入时间 导入多处理 def打印在背景中(): x=0 尽管如此: 打印(f'背景打印{x}') x+=1 时间。睡眠(1) def get_input(): 返回输入(“>”) 后台进程=多处理进程(目标=后台打印) 后台进程守护进程=True 后台程序启动() 尽管如此: v=获取_输入() 印刷品(五) 后台进程连接() 这是因为在主线程获得输入时,您可以让后台线程做一些事情,但是输出是这样的,其中in
input()
导入时间
导入多处理
def打印在背景中():
x=0
尽管如此:
打印(f'背景打印{x}')
x+=1
时间。睡眠(1)
def get_input():
返回输入(“>”)
后台进程=多处理进程(目标=后台打印)
后台进程守护进程=True
后台程序启动()
尽管如此:
v=获取_输入()
印刷品(五)
后台进程连接()
这是因为在主线程获得输入时,您可以让后台线程做一些事情,但是输出是这样的,其中input()
行被后台进程的输出推上:
> Background print 0
Background print 1
Background print 2
I am Background print 3
typingBackground print 4
I am typing
> Background print 5
Background print 6
理论上,这样的输出更可取:
Background print 0
Background print 1
Background print 2
Background print 3
Background print 4
I am typing # From when user hit enter key
Background print 5
Background print 6
> typing in current prompt
如果可能的话,将输入提示保留在控制台的底线上是最佳的。我使用Python stdlib中的Curses库创建了两个窗口:一个用于输出,另一个具有用户可以键入的教科书