以下はエコーバックを切った状態でパスワード入力を促す関数です。 ユーザの入力に関わらず以前の端末属性を正確に回復するために、 二つの tcgetattr() と try ... finally 文によるテクニックが使われています:
def getpass(prompt = "Password: "): import 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