1
p = subprocess.Popen("path to batch file")
time.sleep(30)
#do something to terminate the .exe process

Popen を使用してバッチ ファイルを実行しています。関連するプログラム .exe が開き、cmd ターミナルで実行されます。プログラムは、端末に「q」引数を手動で入力することで (うまく) 終了できます。

上記のpython27スクリプトを使用して「q」文字列を端末に渡し、プログラムがネイティブの終了信号を認識して終了するようにしたいと思います。「os」および「subprocess」モジュールのドキュメントを読み、いくつかの方法(.call、.terminate、.kill)を試した後、成功しませんでした

編集:

操作..

p.send_signal('q')

..私がやりたいことのようです。ただし、「q」はインタープリターで ValueError を発生させます。

4

2 に答える 2

1

writeサブプロセスを作成するときに標準入力を指定してから、そのメソッドを呼び出す必要があると思います。

import time
import subprocess
p = subprocess.Popen(r"your.bat", stdin=subprocess.PIPE)
time.sleep(30)
p.stdin.write("q")
于 2013-04-18T21:35:03.123 に答える