2

我在问与这篇文章相同的问题,但在 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如果可能的话,我想继续使用该功能,因为我希望有可用的输入历史记录。

4

1 回答 1

0

不幸的是,没有任何方法不涉及一些严重或恼人的后果。

几十年来,终端滚动和处理标准输入/标准输出的方式没有太大变化。

看看终端转义序列。只要用户终端基于 VT100 或 ansi 规范,这些应该可以工作。您可以使用它们来设置写入位置、清除线条等。但是如果用户滚动,错觉就会中断。

早期游戏(如 angband、rogue 和 nethack)解决了在屏幕上指定特定位置以输出角色的问题。解决方案是 Curses 库,恰好有一个 curses python 模块

通过使用诅咒,您可以实现您的目标。但我不知道在标准标准外壳中这样做

于 2014-07-30T01:57:52.083 回答