在没有' [ENTER]'的情况下获取用户输入。

时间:2014-07-28 19:37:39

标签: python loops input

我从com端口读取循环...

import serial

def main():
    ser = serial.Serial(11, 4800, timeout = 1)
    ser.open()
    lines = []
    while True:
        line = ser.readline()
        print(line)
        lines.append(line)
        # check for **USER**  input without stopping
        # if input == ' ' or '\n' or what have you:
            # break
    ser.close()

if __name__ == '__main__':
    main()

如何在上面的评论中执行上述伪代码?它甚至可能吗?

2 个答案:

答案 0 :(得分:0)

ser.read()将返回读取的下一个字节。

示例:

x = ser.read()          # read one byte
s = ser.read(10)        # read up to ten bytes (timeout)
line = ser.readline()   # read a '\n' terminated line

答案 1 :(得分:0)

一种方法可能是使用curses.window.getch(),但您必须在其周围编写一些初始化代码,例如创建一个窗口。但不应该过于努力。

在MS Windows下,您可以使用msvcrt.getch()来阅读该字符;如果你不想阻止阅读,请不要忘记检查msvcrt.kbhit()。