2017-03-29 11 views
1

指定した端末コマンドを実行するPythonスクリプトを作成しました。私が使用しようとしていますターミナルコマンドとしてpythonスクリプト内の端末コマンドの自動入力の回答

def main(my_list): 
    for item in my_list: 
     os.system("myCmd -s {0}".format(item)) 

    item_list = ['itemA', 'itemB', 'itemC'] 
    main(item_list) 

は、私はPythonスクリプトにそれを作る理由です-s引数にリストを受け入れていません。 スクリプトを実行しているが、それは動作しますが、私はそれは、次の質問を私に求められますことに注意:これは私が上記の例では、私のキーボード上yで3回パンチする必要があることを意味します Are you sure you want to continue (y/n)?

。 しかし、私のリストが巨大で、私の机の上にいないとすれば、キーボードの何かを押さなくても、それを私の答えとして「y」を受け入れるようにすることができますか?

答えて

1

pipeを使用する必要があります。実際にそのパイプに回答を書き込むことができます。完了したらパイプを閉じるのを忘れないでください。私がそれをインストールする必要が見えるように私はこれをテストする機会がなかった

p = os.popen("myCmd -s {0}".format(item), "w") 
p.write("y\n") 

popenドキュメント

+0

恐ろしい!それは私のために働く! – dissidia

+0

喜んで私は@ディシディアを助けることができました –

1

pexpectモジュールを使用してください。基本的には、シェルスクリプト、Python用にが使用されます。

+0

。しかし、私はそれが同様に動作すると確信しています! – dissidia

関連する問題