在GIS數據處理中,批量操作是經常遇到的問題,Python腳本是解決問題的最好方法。現在需要將arcgis10.1的mxd另存為10.0,不僅數量較多,而且每個mxd要素和標注非常多,手動來操作確實慢一些。
下面是測試通過的Python腳本:
# ---------------------------------------------------------------------------
# Purpose : SaveAsMxd
# Author :gisweis
# Date :2016.4.17
# Version : ArcGIS 10.X
# Email :gisweis
# Notes :
# ---------------------------------------------------------------------------
import sys
#
#reload(sys)
#sys.setdefaultencoding( "utf-8" )
import arcpy
import string
import os
try:
path=arcpy.GetParameterAsText(0)
out=arcpy.GetParameterAsText(1)
ver=arcpy.GetParameterAsText(2)
for root,dirs,files in os.walk(path):
for afile in files:
if afile[-4:].lower() == '.mxd':
print root + os.sep + afile
print out+ os.sep + afile
mxd = arcpy.mapping.MapDocument(root + os.sep + afile)
mxd.saveACopy(out+ os.sep + afile,ver)
except arcpy.ExecuteError:
print arcpy.GetMessages()
關鍵點在於:
1.遍歷mxd文件,使用了os.walk;
2.調用arcpy的另存為文檔函數saveACopy。
參數是通過arcpy.GetParameterAsText來獲取的,主要是為了制作python腳本工具(也可以寫成固定路徑,來執行python),制作方法可參考:
