2

对于我正在处理的 Python 项目,我需要告诉用户插入一个字符并以 ASCII 码返回其值,而无需按 Enter 键提交密钥。

只有当我的程序是活动应用程序时,它才必须读取输入,否则它必须什么都不做(就像getch()在 Windows 中一样)。操作系统是 OS X。

4

1 回答 1

1

通常,数据在换行后在标准输入中可用。

因此,您需要将标准输入置于“原始模式”。这是一个 python 程序,它将从原始 tty 读取按键。它在 16 次按下后停止,因为 Ctrl-C 也没有被处理。

import sys
import termios
import tty

attr = termios.tcgetattr( sys.stdin )
tty.setraw( sys.stdin )

for i in range(16) :
    d = sys.stdin.read(1)
    print ord( d[0] )
    print "\r",

termios.tcsetattr( sys.stdin, termios.TCSADRAIN, attr )
于 2014-02-02T18:59:38.877 回答