私は彼が私に送った答えに応じて多くのコマンドをcmd
に送信しようとしています。多くのコマンドをcmdに送信
import subprocess
process = subprocess.Popen("cmd.exe", stdout=subprocess.PIPE,stdin=subprocess.PIPE)
answer = process.communicate(input="some command\n" + '\n')[0]
"""
choosing another command according to answer
"""
print process.communicate(input=another_command + '\n')[0]
process.kill()
問題を解決する方法上の任意のアイデア:
ValueError: I/O operation on closed file
が、私はこのような何かを実行している:
私は、実行時エラーメッセージを取得していますか?
ありがとうございました!
より大きな画像を表示できますか?あなたは 'process.kill()'の後にあなたのコマンドを送りますか?そうでない場合、コードのいくつかの例を提供できますか( ''いくつかのコマンド ''の代わりに実際のコマンドを使用します)? cmdで実行しようとするコマンドがシェルを終了させる可能性があります。 – woockashek
'process.kill()'と両方のコマンドが '' ipconfig \ n "'でなくても。最初のコマンドは動作していて、2番目のコマンドはランタイムエラー –
を実行します。コマンドを実行すると、おそらく戻りコードが返され、Popenオブジェクトが閉じられます。たとえば、ipconfigを実行して 'process.poll()'を実行すると、おそらく '0'の戻りコードが表示されます。 – sytech