私が取り組んでいるArcGIS用のPythonスクリプトがあります。必要なデータが利用できない場合は、スクリプトを終了したいのですが。sys.exit()をまっすぐ試しましたが、ArcMapで例外が発生するため、回避したいと思います。tryブロックの使用を提案するこのスレッドを見つけたので、この関数を作成しました。
def quit_script(message):
log_msg(message) # already defined; writes a message to a file
if log_loc:
output.close() # close the file used with log_msg()
try:
sys.exit()
except SystemExit:
pass
残念ながら、それもうまくいきませんでした。ええ、ArcMapでそのエラーは発生しませんが、終了することもありません。現在、if / elseステートメントにコードの大部分が含まれていますが、それは見苦しいです。誰か他の提案がありますか?
ありがとう!ブライアン
理論的には、sys.exit(0)は正常に終了した操作です-msdn.microsoft.com/en-us/library/ms681381.aspxを参照してください -しかし、Michaelのように私はArcGISの近くにいないので、どのようになっているのかわかりません処理されます。
—
om_henners
systemexitを上げようとしましたか?私は、ワークスペース内の機能のリストを取得しようとするifステートメントでこのアプローチを使用するPythonプログラムを作成し、空のリストを返す場合、else呼び出しはsystemexitを呼び出します(うまく機能します-私はたくさんあります)ログファイルの出力と印刷も行われるため、プログラムが終了した理由を確認できます)。おそらくこれを行うための複数の方法と、おそらくもっと良い方法がありますが、これは私が期待していた/望んでいたことをします。
—
turkishgold
あなたはこのGSEスレッドに例を見ました gis.stackexchange.com/questions/1015/...