我问的问题与this post相同,但是在Linux下的Python中。我有一个在后台运行的线程,它不断地输出内容,但是我想将输入线保持在终端的底部而不是被冲走。有人可以给我一个代码示例吗?假设我的代码是这样的:
from time import sleep
from multiprocessing import Process
def subproc():
while True:
print "something"
sleep(1)
def main():
p = Process(target=subproc)
p.start()
c = raw_input()
编辑:顺便说一下,如果可能的话,我想继续使用raw_input
函数,因为我希望有输入历史记录。
答案 0 :(得分:0)
终端滚动和处理stdin / stdout的方式在几十年内变化不大。
Take a look at terminal escape sequences.只要用户终端基于VT100或ansi规范,这些就可以了。您可以使用它们来设置写入位置,清除行等。但是如果用户滚动,则幻觉将会中断。
在早期游戏如angband,rogue和nethack中,针对在屏幕上指定特定位置以输出角色的问题已得到解决。解决方案是Curses库and there happens to be a curses python module
通过使用curses,你可以实现你的目标。但我知道在标准标准炮弹中无法做到这一点