ようへいの日々精進XP

よかろうもん

Python でコマンドラインからパスワード入力させるの際には画面にパスワード文字列は出力させたくないゾ

この記事は...

qiita.com

参加者の少ない, 初老丸 Advent Calendar 2017 11 日目の記事です.

何がしたかったのか

以下のように Python スクリプトを実行して, コマンドラインからパスワードの入力を受け付けたい場合, パスワード文字列は出力させないようにしたい.

$ python script.py
Input Your Name: ore
Input Yout Password: [ここは画面上に表示させたくない]

どうしたか

モジュールの getpass を使えば一瞬だった.

https://docs.python.jp/3/library/getpass.htmldocs.python.jp

以下のように利用する.

#!/usr/bin/env python

import getpass

print('ユーザー名を入力して下さい.')
user = input('username: ')
print('パスワードを入力して下さい.')
password = getpass.getpass('password: ')

print(user)
print(password)

実行すると以下のように出力される.

$ python sample.py
ユーザー名を入力して下さい.
username: foo
パスワードを入力して下さい.
password:
foo
bar

実際には password: 欄で bar を入力しているが, 画面には出力されていない. まさにコレをやりたかった.

以上

メモでした.

標準のモジュールでさくっと実現出来るのって嬉しい限り.