8

バックグラウンドでサイレントに実行されるバックアップ デーモンを開発しています。duplicityデーモンは、バックアップ時に暗号化キーを必要とするバックアップ ソフトウェアに依存しています。明らかに、デーモンはパスワードにアクセスできないため、コンソールからパスワードを要求することはできません。

ユーザーにパスワードの入力を求め、それを (Python 変数を介して) アプリケーションに返すプロンプトを簡単に作成するにはどうすればよいでしょうか? 私はPython 2.7を使用しています。

4

5 に答える 5

5

誰もが TK を使いたがっているわけではないため、PyQt を使用したスクリプトを次に示します。

from PyQt5.QtWidgets import QApplication, QInputDialog, QLineEdit
import sys
app = QApplication(sys.argv)
qd = QInputDialog()
qd.setTextEchoMode(QLineEdit.Password)
qd.show()
app.exec()

そして、通常、ユーザーにパスワードを尋ねるだけではないため、次のようになります。

#!/bin/env python3
#passwordPrompt.py

from PyQt5.QtWidgets import QApplication, QInputDialog
import sys, time

def succFunc():
  sys.stdout.write(qd.textValue())
  sys.stdout.flush()
  exit(0)

def failFunc():
  exit(1)

app = QApplication(sys.argv)
qd = QInputDialog()
#QLineEdit.Password
qd.setTextEchoMode(2)
qd.rejected.connect(failFunc)
qd.accepted.connect(succFunc)
qd.show()
app.exec()

対応する bash 関数:

#!/bin/bash

passwordPrompt.py | tee
于 2015-07-16T13:31:47.720 に答える