【发布时间】:2014-02-02 18:23:01
【问题描述】:
对于我正在处理的 Python 项目,我需要告诉用户插入一个字符并以 ASCII 码返回其值,而无需按 Enter 键提交。
只有当我的程序是活动应用程序时,它也必须读取输入,否则它必须什么都不做(如 Windows 中的getch())。操作系统是 OS X。
【问题讨论】:
标签: python macos input key getch
对于我正在处理的 Python 项目,我需要告诉用户插入一个字符并以 ASCII 码返回其值,而无需按 Enter 键提交。
只有当我的程序是活动应用程序时,它也必须读取输入,否则它必须什么都不做(如 Windows 中的getch())。操作系统是 OS X。
【问题讨论】:
标签: python macos input key getch
通常,数据在换行后在标准输入中可用。
因此您需要将标准输入置于“原始模式”。 这是一个 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 )
【讨论】: