我已经用python编写了一个简单的聊天程序。您只有一个简单的input()提示符(使用readline),该提示符应始终位于底部。
partner: hey
you > (stdin)
现在,我在不使用诅咒的情况下尝试了此操作,并且通过定义这两个常量获得了成功
CURSOR_UP_ONE = '\x1b[1A'
ERASE_LINE = '\x1b[2M'
每当收到来自“合作伙伴”的消息时,我都会这样使用:
print(ERASE_LINE + CURSOR_UP_ONE)
print('partner > ' + msg)
print('you > ')
这样做很好,但是有一个问题:当我刚开始输入来自“合作伙伴”的消息时,它会擦除包括我键入的内容(后来我再也无法访问)的行,并且所擦除的字符是显然仍然是input()返回的一部分。
因此,有没有办法使输入的提示符向下移动而不用诅咒,或者是否有办法缓冲键入的字符以使其能够访问,显示和操纵它们?
好,我解决了我的问题。我发现了模块rl
。我用这种方式:
import rl.readline as readline
# code
print(ERASE_LINE + CURSOR_UP_ONE)
print('partner > ' + msg)
readline.redisplay(True)
这只是重新显示提示,包括我键入的内容(恰好是我想要的内容)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句