Python-使用get_wch或getkey读取特殊密钥

Python-使用get_wch或getkey读取特殊密钥,python,curses,Python,Curses,假设我有以下设置: import curses window = curses.initscr() curses.noecho() while True: k = window.get_wch() print("k: ", k) 现在,根据文档,get_wch应该在普通字符上返回一个字符,在特殊键上返回一个整数。但是,当我运行上面的代码段并按箭头向上时,上面的循环会触发三次,并给出三个单独的字符,而不是整数。当我使用getkey时也会发生同样的情况:三个字符而不是多字节字符

假设我有以下设置:

import curses

window = curses.initscr()
curses.noecho()

while True:
    k = window.get_wch()
    print("k: ", k)

现在,根据文档,
get_wch
应该在普通字符上返回一个字符,在特殊键上返回一个整数。但是,当我运行上面的代码段并按箭头向上时,上面的循环会触发三次,并给出三个单独的字符,而不是整数。当我使用
getkey
时也会发生同样的情况:三个字符而不是多字节字符串(正如文档所说,它应该返回)。如何读取特殊密钥?这是一个bug,还是我错过了一些明显的东西?如果有必要的话,我正在Linux和Python 3.6.1上运行代码。

您将输出一些内容,以便在下一个循环迭代中读取它!打印内容后刷新/清除输入

import curses

window = curses.initscr()
curses.noecho()
window.keypad(True)  # Maybe not perfect, but a good start?

while True:
    k = window.get_wch()
    print(f'k: {k}')
    curses.flushinp()

问题不是额外的循环,问题是我不能以这种方式读取特殊密钥。谢谢,这是丢失的部分。现在它起作用了。