在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),制作方法可参考: