2011-08-09 20 views
2

外部実行可能ファイルがパスワードの入力を要求しているので、Pythonスクリプト内からUnix expectに似た機能が必要です。私は現在、これをやっている:Pythonでプロンプトにパスワードをプログラムで入力しますか?

execAはパスワードを要求され
p = subprocess.Popen("execA",stdout=subprocess.PIPE,stderr=subprocess.STDOUT) 

。私はそのパスワードを供給するために "期待する"と包みたい。

Pexpect - Noah Spurrier

Python Expect

これを行うための最善の方法は何ですか:

は、いくつかの選択肢があるように思われますか?それについてもっと効率的な方法があるなら、私は知りたいと思う。

+2

「環境設定」(質問に対する質問はFAQには反対ですが)を求めないようにしてください。 – agf

答えて

1

Pexpectはこれまでこのようなことをするために過去に使ったものです。

プログラムによっては、それを書き込むだけで十分でしょうか?

+0

あなたの助けてくれてありがとう、pexpectは私が使ったものですが、kerberosの統合パスワードではkeytabファイルを使う方が良いかもしれません。何らかの処理の後にパスワードプロンプトが表示された場合、stdinへの書き込みは機能しません。これが他の人にも役立つことを願って – cone

0

これらの種類のプログラムは通常、ttyに直接アクセスして「生」モードにします。したがって、stdioパイプは機能しません。サブプロセスをptyに生成する必要があります。それを使った簡単な読み書きが可能です。これらの「期待に似た」モジュールは、通常、より複雑なシナリオ用です。

もちろん私はthis oneを好んでいますが、OSXでうまくいくかどうかはわかりません。

関連する問題