2017-06-21 4 views

答えて

1

使用subprocess.Popenコマンドを開始し、その後、communicateがユーザーの操作をシミュレートします。

import subprocess 

process = subprocess.Popen(['openssl', 'req', '-new', ...], 
       stdin=subprocess.PIPE, stdout=subprocess.PIPE) 
stdout, stderr = process.communicate(input='input1\ninput2') 
0

この特定のコマンドでは、スクリプトに入力を入力するための自動化ツールは必要ありません。ファイルをパイプでパイプすることで、ユーザーの介入なしに実行できるはずです(Coldspeed氏のコメントのように)。

ほとんどのコマンドラインインターフェイスでは、パラメータ化された実行とほとんどのパラメータをスクリプトに組み込んだり、どこかの設定ファイルから読み込んだりすることができます。

"本当の"ユーザー操作が必要なコマンドラインツール(入力をパイプしたり、コマンドをパラメータ化したり、何らかの形でコマンドをビルドすることはできません)では、pexpectモジュールを使用して大成功を収めました。

関連する問題