python:在连续循环中使用键盘输入?

时间:2011-06-09 00:46:03

标签: python

操作系统是Redhat-c​​lone Linux发行版,我使用的是python-2.x。

一般代码结构是:

# stuff is initialized
while True:
    # read stuff from remote devices
    # process data
    # maybe do stuff, or maybe just watch
    os.system("clear")
    # display status of remote devices
    time.sleep(1)

我想让用户按下各种键来驱动程序。例如。 “按S键优先关闭远程设备,按K键杀死,R重启”。所有这些行动都需要在大循环中发生 - 我的伪代码中的“可能做的事情,或者只是观看”评论。如果没有按下任何键,程序应该保持循环。

我不确定如何在一段时间内完成键盘读取True:time.sleep(1)循环。

3 个答案:

答案 0 :(得分:1)

可能是使用curses的最简单方法;它可以让你清理屏幕而不需要使用可能存在或不存在的外部程序(虽然有趣,/usr/bin/clear由我的Ubuntu系统上的ncurses-bin包提供),它使{{3}这使得将文本放置在屏幕上的特定位置非常容易。

使用curses的缺点是使用它的程序很难在管道中使用。但是,如果您已经从程序内部调用clear(1),那么管道已经不是真正的选择。

答案 1 :(得分:1)

以下代码适用于我。

while True:
    choice = raw_input("> ")
    choice = choice.lower() #Convert input to "lowercase"

    if choice == 'exit':
        print("Good bye.")
        break

    if choice == 'option1':
        print("Option 1 selected")

    if choice == 'option2':
        print("Option 2 selected")

答案 2 :(得分:0)