在按键上打破循环

时间:2015-07-04 04:02:01

标签: python-2.7

我有一个连续循环,它修改数组中的数据并在每个循环上暂停一秒钟。这是没有问题的。但是我还需要在输入特定按键时将数组的特定部分打印到屏幕上,而不会在一秒间隔内中断连续循环运行。

关于如何在不干扰循环的情况下获取按键的任何想法?

2 个答案:

答案 0 :(得分:1)

您可以使用multiprocessingthreading库来生成将运行continuos循环的新进程/线程,并通过读取用户输入继续主流(打印特定部分数组到屏幕等)。

示例:

import threading

def loop():
    for i in range(3):
        print "running in a loop"
        sleep(3)
    print "success"

if __name__ == '__main__':

    t = threading.Thread(target=loop)
    t.start()
    user_input = raw_input("Please enter a value:")
    print user_input
    t.join()

答案 1 :(得分:1)

您可能正在寻找select模块。 Here's关于等待I / O的教程。

为了在按键上执行某些操作,您可以使用以下内容:

import sys
from select import select

# Main loop
while True:
    # Check if something has been input. If so, exit.
    if sys.stdin in select([sys.stdin, ], [], [], 0)[0]:
        # Absorb the input
        inpt = sys.stdin.readline()
        # Do something...