0

私はこのようなサブプロセスを使用しています

args = ['commandname', 'some args']
subprocess.check_output(args)

時々私はこのエラーを受け取ります

command returned non-zero exit status 1

ゼロ以外の終了ステータスを取得した場合、システムは次のようなメッセージで例外を発生させる方法はありますか

output = subprocess.check_output(args)
if non zero exit :
   raise Exception(errormessage)
4

1 に答える 1

0

[docs]subprocessという属性を使用できますreturncode

Popen.returncode 
  The child return code, set by poll() and wait() (and indirectly by communicate()). 
  A None value indicates that the process hasn’t terminated yet.

  A negative value -N indicates that the child was terminated by signal N (Unix only).

したがって、次のように動作するはずです(テストされたコードではありません)-

import subprocess
args  = ['commandname', 'some args']
child = subprocess.Popen(args, stdout=subprocess.PIPE)
streamdata = child.communicate()[0]
returncode = child.returncode
if returncode != 0:
    raise Exception
于 2013-05-01T01:41:28.817 に答える