input 関数と getpass 関数
Python 組み込み関数の input
関数を使用すると、画面上にプロンプトを表示して、キーボードからの入力を促すことができます。
name = input("Please input your name: ")
print("Hello,", name)
パスワードを入力させるときなど、入力した文字を画面上に表示したくない場合は、input
関数の代わりに、getpass
モジュールの getpass
関数を使用します。
from getpass import getpass
password = getpass("Password: ")
使用例: 処理を継続するかの確認
ファイルの削除など、危険なコマンドを実行する前に Are you sure?
的な確認メッセージを表示するサンプルコードです。
ユーザーが y
あるいは Y
以外の文字を入力すると、そこで処理を打ち切ります。
import sys
answer = input("Are you sure? (y/n): ")
if (answer.lower() != "y"):
sys.exit(0)
print("処理を継続します")
$ python confirm.py
Are you sure? (y/n): Y
処理を継続します
使用例: 入力したユーザー名とパスワードのチェック
下記のサンプルコードでは、ユーザに「ユーザ名」と「パスワード」のペアを入力させて、それらがあらかじめ登録されたペアと一致しているかをチェックしています。
from getpass import getpass
user_db = (
("user1", "password1"),
("user2", "password2"),
("user3", "password3"),
)
user = input("User: ")
pw = getpass("Password: ")
if (user, pw) in user_db:
print("Access granted")
else:
print("Access denied")
$ python password.py
User: user1
Password:(password1 と入力)
Access granted