2016-12-09 23 views
0

私は、bashコマンドで別のプログラムを実行するpythonスクリプトを書いています。Pythonのサブプロセスで無限ループを防ぐ方法を教えてください。

私はsubprocess.Popen()の機能を使用しています。しかし、いくつかの条件では、外部プログラムが私にエラーを与え、同じコメントを無限に実行しようとします。

このエラーをキャッチして、Popenの機能を中断する方法を教えてください。

プログラムがエラーとして出力するものとします。

答えて

0

これにはpoll()またはcommunicate()を使用できます。これらのメソッドは、プロセスが終了するとreturncodeを返します。プログラムが実行されている限り、戻りコードはNoneです。

あなたは、コードの下に使用して試すことができます

from subprocess import Popen 

process = Popen('bash your_script.sh') 

while process.poll() is None: 
    print 'keep running' 

process.terminate() 
関連する問題