前回termiosを使って同じことをしたんだけど、ttyでもやってみた。
[前回]http://qiita.com/tortuepin/items/9ede6ca603ddc74f91ba
import sys
import termios
import tty
#標準入力のファイルディスクプリタを取得
fd = sys.stdin.fileno()
#fdの端末属性をゲットする
old = termios.tcgetattr(fd)
try:
#標準入力のモードを切り替える
#cbreakとrawのどっちもエンターいらなくなるけど、rawはctrl-cとかもきかなくなる??
tty.setcbreak(sys.stdin.fileno())
#tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
# fdの属性を元に戻す
termios.tcsetattr(fd, termios.TCSANOW, old)
print(ch)
こっちのほうが前回よりも自由度は低いけど簡単です。
cbreakとrawの違い