1

前回の質問を言い換えさせてください。pythong をスクリプト言語として使用して、ArcGIS でツールを作成しました。このツールは、subprocess.popen を使用して外部プログラムを実行 (実行) します。ArcGSIS からツールを実行すると、次の情報のみを表示するウィンドウが表示されます。

Executing: RunFLOW C:\FLOW C:\FLOW\FLW.bat
Start Time: Mon Nov 30 16:50:37 2009
Running script RunFLOW...
Completed script RuFLOW...
Executed (RunFLOW) successfully.
End Time: Mon Nov 30 16:50:48 2009 (Elapsed Time: 11.00 seconds)

スクリプトは次のとおりです。

# Import system modules
import sys, string, os, arcgisscripting, subprocess
# Create the Geoprocessor object
gp = arcgisscripting.create()
# Read the parameter values:
#  1: input workspace
prj_fld = gp.GetParameterAsText(0)
Flow_bat = gp.GetParameterAsText(1)
os.chdir(prj_fld)
p=subprocess.Popen(Flow_bat,shell=True,stdout=subprocess.PIPE)
stdout_value = p.communicate()[0]
print '\tstdout:', repr(stdout_value)

コマンド ウィンドウから同じプログラムを実行すると、画面に情報 (日付、反復回数など) が表示されます。現在印刷されているものに加えて、ArcGIS からモデルを実行した後に表示されるウィンドウで、このすべての情報を確認したいと考えています。印刷、通信、フラッシュを試みましたが、できませんでした。助言がありますか?

スクリプトをそのまま実行すると、実行可能ファイルが実行されますが、次のようなエラーが発生します

ERROR 999998: There are no more files.

ありがとう

4

2 に答える 2

0

あなたがこれを知っているかどうかはわかりませんが、私は以下を使用します:

gp.AddMessage('blah blah')

ArcGIS 処理ウィンドウに表示されるメッセージを取得します。ArcGIS エンジンにアクセスするために Python にインポートするライブラリである geoprocessor オブジェクトのメソッドです。ジオプロセシングを行っている場合、このライブラリは既にインポートされています。

于 2009-12-09T20:20:27.373 に答える