CUIなツールでのパスワード読み込みについてのメモ
はてなグラフの体重、体脂肪率を早速貼り付けてみたbonlifeです。夕食を早めに食べただけで体重が800gも減っているように見えるマジック!一喜一憂せずにノンビリと体を引き締めたいところです。(お腹がぷにぷにしてます…。)
さてさて、「標準入力の読み込みについてのメモ」の続きです。パスワードを入力する際、そのまま入力してる様子が見えちゃうとソーシャルなんちゃらとかアレなので、* にするなり表示させない工夫をしたい。そういうことをやってくれる小人がgetpassですって。
import getpass user_name = raw_input('user_name : ') password = getpass.getpass('password : ') print 'user_name is ' + user_name print 'password is ' + password
パスワードは表示されません。予定通りの動作です。
user_name : bonlife password : user_name is bonlife password is aaa
パスワードを2回入力させて確認したい時には、while 1: とかでループを回して、処理したら良いはず。以下のようなイメージ。(もっと上手いやり方ありそうですが、とりあえず。)
import getpass user_name = raw_input('enter user_name : ') while 1: password = getpass.getpass('enter password : ') password2 = getpass.getpass('re-enter password : ') if password != '' and password == password2: break # break or call some functions here... else: print 'WAR : Incorrect password. Please try again.' print 'user_name is ' + user_name print 'password is ' + password
異なるパスワードを入力すると、メッセージ表示後、再度入力を促されます。
enter user_name : bonlife enter password : re-enter password : WAR : Incorrect password. Please try again. enter password : re-enter password : user_name is bonlife password is aaa
メッセージを表示する際、warningsモジュールのwarnで警告にした方が良いのかなぁ、と思いましたが、とりあえず普通にprintで。こんな感じでボチボチ勉強してみます。あら、こんな日記書いてるうちに遅刻ですよ。