我可以在程序运行时更改raw_input游标的位置吗? - 蟒蛇

时间:2013-08-08 22:55:36

标签: python cursor raw-input

我可以在程序运行时更改raw_input游标的位置吗?

例如,我的代码是:

print raw_input ("Please enter your last name..")
print ("                                        Type now ..")
print raw_input ("please enter your first name..")

我想要"现在输入"部分是在屏幕的下半部分,但闪烁|留在"请输入您的姓氏"部分。

Oooo,当我在这里时,有人可以将我的代码粘贴到我的代码中旋转? :D还是给我留下更令人印象深刻的东西?

2 个答案:

答案 0 :(得分:2)

没有跨平台的方式来实现这种“控制台GUI”功能。

如果您不关心Windows,大多数其他平台都有curses模块。它对你想要的东西来说有点重量,但它可以做你想要的一切以及更多。

或者,如果您只关心公共终端(ANSI控制序列,80个字符宽度等),您可以通过发送显式控制序列或使用代表您这样做的包装程序库来完成。

或者,如果您关心Windows,那么PyPI上的conio周围会有各种不同的包装。


正如您可能已经猜到的,旋转光标的代码取决于您使用的库。虽然你实际上并不需要完整的光标移动功能;你只需要一些方法在原始模式下从键盘读取。 (您可以在Windows上使用msvcrt库,在Unix上使用tty库和/或仅在select上使用stdin执行此操作。)然后,您只需循环,等待超时的键,比如0.1秒,如果超时则更新光标。

这样的事情:

cursor = itertools.repeat(r'|/-\')
while True:
    if msvcrt.khbit():
        return msvcrt.getwch()
    msvcrt.putwch('\008')
    msvcrt.putwch(next(cursor))
    time.sleep(0.1)

答案 1 :(得分:0)

正确:
    for in in [“/”,“ - ”,“|”,“\”,“|”]:
        打印“%s \ r”%i,