pythonでサブプロセスを開始して終了させる関数を書くにはどうすればよいですか?python関数からサブプロセスを開始して終了する
これはこれまでのところ私のコードです:私はこのコードを実行すると
import subprocess
import signal
import time
def myfunction(action):
if action == 'start':
print 'Start subrocess'
process = subprocess.Popen("ping google.com", shell=True)
if action == 'stop':
print 'Stop subrocess'
process.send_signal(signal.SIGINT)
myfunction('start')
time.sleep(10)
myfunction('stop')
は、私はこのエラーを取得する:
Traceback (most recent call last):
File "test.py", line 15, in <module>
myfunction('stop')
File "test.py", line 11, in myfunction
process.send_signal(signal.SIGINT)
UnboundLocalError: local variable 'process' referenced before assignment
変数プロセスが破壊されて動作します。 QuickFixはグローバル変数またはOOPです。 – Serge
woah @ Serge、すばやくグローバル変数を提案しないでください!この場合は特に、先に進むべき他の多くの迅速な修正があります。 – waterproof