对于我正在处理的 Python 项目,我需要告诉用户插入一个字符并以 ASCII 码返回其值,而无需按 Enter 键提交密钥。
只有当我的程序是活动应用程序时,它才必须读取输入,否则它必须什么都不做(就像getch()
在 Windows 中一样)。操作系统是 OS X。
通常,数据在换行后在标准输入中可用。
因此,您需要将标准输入置于“原始模式”。这是一个 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 )