186

シナリオ: パスワードが必要な対話型 CLI Python プログラム。つまり、可能な GUI ソリューションはありません。

bash では、次の方法で画面上にパスワードを再プロンプトすることなく、パスワードを読み込むことができました。

read -s

Pythonに似たものはありますか?すなわち、

password = raw_input('Password: ', dont_print_statement_back_to_screen)

別の方法: 入力した文字を画面に戻す前に「*」に置き換えます (ブラウザ スタイル)。

4

2 に答える 2

294
>>> import getpass
>>> pw = getpass.getpass()
于 2009-11-19T08:29:02.003 に答える
56

はいgetpass: 「エコーせずにユーザーにパスワードを要求します。」

編集:私はまだこのモジュールを自分で試したことがなかったので、これが私が作ったものです (ただし、似たようなコードがいたるところに見つかっても驚かないでしょう):

import getpass

def login():
    user = input("Username [%s]: " % getpass.getuser())
    if not user:
        user = getpass.getuser()

    pprompt = lambda: (getpass.getpass(), getpass.getpass('Retype password: '))

    p1, p2 = pprompt()
    while p1 != p2:
        print('Passwords do not match. Try again')
        p1, p2 = pprompt()

    return user, p1

(これは Python 3.x です。Python 2.x を使用する場合raw_inputの代わりにinput使用します。)

于 2009-11-19T08:29:10.727 に答える