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()
问题不是额外的循环,问题是我不能以这种方式读取特殊密钥。谢谢,这是丢失的部分。现在它起作用了。