0

次のようにPythonを使用して外部プログラムを実行しています

 call("/usr/sbin/snif")

そして私は得る

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/subprocess.py", line 480, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.6/subprocess.py", line 633, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1139, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

最後の行を取得するにはどうすればよいですか。

"そのようなファイル、又はディレクトリはありません"

さらに良いことに、実行が成功したかどうかをどのように知ることができますか?

ありがとう

4

1 に答える 1

1

エラーをキャッチできます:

try:
    call('/usr/sbin/snif')
except OSError:
    print "It didn't execute"

コマンドが正しく実行されたかどうかを確認したい場合は、check_outputまたはcheck_call代わりにまたはを使用して、別のエラーをキャッチします。

import subprocess:

try:
    subprocess.check_output('/usr/sbin/snif')
except OSError:
    print 'That file does not exist'
except subprocess.CalledProcessError:
    print 'Bad exit code'
于 2012-12-09T10:16:52.710 に答える