シナリオ:対話型CLI Pythonプログラム。パスワードが必要です。それは、GUIソリューションが不可能であることも意味します。
Bashでは、画面上で再入力することなくパスワードを読み込むことができました
read -s
Pythonに似たようなものはありますか?つまり、
password = raw_input('Password: ', dont_print_statement_back_to_screen)
別の方法:入力した文字を「*」に置き換えてから、画面(ブラウザスタイル)に戻します。
>>> import getpass
>>> pw = getpass.getpass()
はい、 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を使用する場合、 input
の代わりに raw_input
を使用します。)