16.7.1 使用例

以下はエコーバックを切った状態でパスワード入力を促す関数です。 ユーザの入力に関わらず以前の端末属性を正確に回復するために、 二つの 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
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。