シナリオ:インタラクティブなCLI Pythonプログラムで、パスワードが必要です。つまり、GUIソリューションはありません。私はパスワードがstdinからパスワードを読み取る
read -s
を介してスクリーン上でそれを再プロンプトを表示せずに読み込ま得ることができますbashで
は、Pythonのための同様のものがありますか?代わりに、タイプされた文字を '*'に置き換えてから、スクリーン(別名ブラウザのスタイル)に戻してください。
シナリオ:インタラクティブなCLI Pythonプログラムで、パスワードが必要です。つまり、GUIソリューションはありません。私はパスワードがstdinからパスワードを読み取る
read -s
を介してスクリーン上でそれを再プロンプトを表示せずに読み込ま得ることができますbashで
は、Pythonのための同様のものがありますか?代わりに、タイプされた文字を '*'に置き換えてから、スクリーン(別名ブラウザのスタイル)に戻してください。
>>> import getpass
>>> pw = 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
を使用してください)
ええ、バッテリーです。 ;-) Pythonのクールなことの1つは、他の言語、特にC言語のバイナリと簡単にバインドできるため、既存のものをたくさん活用することです(getpass()など) – mjv
getpass CLIツールがSTDINを介してデータを供給されているにもかかわらず、自分でパスワードを入力する必要がある状況を扱います。素晴らしいツール! – Tiemen
@Tiemenしかし、パスワードをスクリプトにパイプしても、getpass()が私にプロンプトを表示してパスワードを待っているので、これを行うためのソリューションを探していました。 – Michael