- 1. 概要
- 2. 使い方
- 3. 備考
1. 概要
「getpass」は、「python」のドキュメントには、「可搬性のあるパスワード入力機構」と書かれているのですが。
わたしは、エコーバックさせない入力のために使用しています。
エコーバックさせない入力を行おうとすると、「Linux」では、「termio」というモジュールを使ったり、「Windows」では、「ctypes」というモジュールを使ったりするようですが。
どちらも結構面倒くさいし、違うプラットフォームだと別々のプログラムを書かなければならない。
共通的に使用するには、パスワード入力は、端末にエコーバックしないという仕掛けを使用することにしました。
2. 使い方
少なくとも「python 3.8」以降では、標準でインストールされているようです。
キー入力を受け付けるのは、行入力であれば。
import sys
line = sys.stdin.readline()
とすれば、「line」に入力したものが、はいってくるわけですが。
これは、エコーバックしますし、冒頭で述べたように、エコーバックを止めるのは、面倒くさい。
そこで、「getpass」を使用するのですが。
import getpass
line = getpass.getpass()
だと。
Password:
てなプロンプトが表示されちゃう。
これを。
import getpass
line = getpass.getpass(prompt='')
と書けば、エコーバックせずに、標準入力から行入力を受け取ることができます。
3. 備考
本ページは、下記の記事を参考にさせていただきました。
「getpass --- 可搬性のあるパスワード入力機構」
「getpass – パスワードのために入力文字を表示しないプロンプト」
この他、「Google」大先生に「python Windows キー入力非表示」の検索で教えていただきました。
|
|