Python のサブプロセス モジュールを介してコマンド ライン ユーティリティを実行しています。コマンド ライン引数と stdout=subprocess.PIPE を指定して subprocess.Popen() オブジェクトを作成し、subprocess.wait() を使用してタスクが完了するまで待機し、タスクが正常に完了したかどうかを示すリターン コードを返します。 .
translate = subprocess.Popen(['gdal_translate', '-of', 'HFA', 'inDataset', 'outDataset'], stdout=subprocess.PIPE)
if translate.wait() == 0: print "Success"
else: print "Fail - %s" % translate.stdout.read()
Windows コマンド プロンプトでスクリプトを実行すると、gdal_translate によって提供されるメッセージが表示され、プロセスが失敗する原因となるエラーが発生したと表示されますが、スクリプトは引き続き「成功」と出力します。
戻りコードが常に 0 の場合、コマンド ライン ユーティリティによって報告されたエラーを確認するにはどうすればよいですか?