2016-11-22 18 views
0

私は2つのpythonスクリプトa.pyb.pyを呼び出しています。私は、コマンドに入れ子になったPythonスクリプトを終了するには?

os.system('python b.py') 

を与えているa.py内側から

、いくつかの例外がb.pyに発見された場合、私はa.pyb.pyの両方の完全な実行を停止することにしたいです。それを行う方法はありますか?

b.pya.pyにインポートしていません。私は単にそれをos.system()を使って呼び出しています。

他のスクリプトをインポートしてもどうすれば同じ結果が得られますか?

答えて

1

os.system()は、(エンコードされた)プロセス終了値を返します。 0は成功を意味します。

より強力であるので、私はむしろsubprocessモジュールをお勧めしたいと思います。 subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)をご覧ください。

幸運。

1

処理しない例外を発生させる可能性のあるモジュールbをインポートした場合は、例外を処理せずに処理を停止させるか、または処理してexitを実行してください。

os.systemを呼び出す場合は、返されたエラーコードを確認してください。 Pythonが正常に終了しない場合(例外が発生した場合)、値は0になります。テストして、それに応じて行動することができます:

if os.system('python b.py'): 
    # exit from script a.by 
関連する問題