批量另存mxd

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

http://www.cnblogs.com/liweis/p/4252596.html

posted @ 2016-04-21 17:18  我也是个傻瓜  阅读(2938)  评论(1编辑  收藏  举报