以下は、入力をエコーしないパスワードの入力を求める関数です。 tcgetattr() コールと、try ... finally 文を分割 しておいて、どのような場合にも古い端末属性を確実にリストアしていることに 注意してください。
def getpass(prompt = "Password: "): import termios, TERMIOS, sys fd = sys.stdin.fileno() old = termios.tcgetattr(fd) new = termios.tcgetattr(fd) new[3] = new[3] & ~TERMIOS.ECHO # lflags try: termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new) passwd = raw_input(prompt) finally: termios.tcsetattr(fd, TERMIOS.TCSADRAIN, old) return passwd