2017-04-09 58 views
1

假设我有以下设置:的Python - 读特殊按键与get_wch或信息getKey

import curses 

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

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

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

回答

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() 
+0

问题不是额外的循环,问题是我不能以这种方式读取特殊键。 – Michail

+0

也许再次阅读https://docs.python.org/3/howto/curses.html并检查我的编辑。 –

+1

谢谢,那是失踪的一块。现在它可以工作。 – Michail