批量另存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

时间: 2024-08-07 21:16:27

批量另存mxd的相关文章

.NET破解之百度网盘批量转存工具

在百度网盘上看到好的资源,总想转存到自己的网盘,加以整理.由于分享的规则原因,手动转存非常麻烦,于是百度批量转存工具.最先搜到的是小兵的百度云转存助手,无需注册,试用版用户一次只能操作10个,而捐助用户则没有限制(说白了,就是商业版用户,无捐助无免费),它是C或C++写的,不是软柿子,说真的,我不会.于是再搜索,找到了智者软件的百度网盘批量转存助手,它是C#写的,最多支持3个,在官网下载最新版本,不能正常转存,在网上下载了一个可用版本来分析一下. 01.使用软件 在使用软件过程中,才能熟悉软件的

如何利用邓西百度网盘批量转存检测工具批量检测百度网盘失效分享链接

做百度网盘营销的小伙伴有时需要分享一大批网盘分享链接,分享完成发布在网站上或者发送给小伙伴后,但是因为百度对资源的审核,有可能过一段时间其中的一些分享链接就失效了,但是分享链接又太多,自已又没挨个去检查,等待别人反馈才知道那个失效了,非常被动. 下面就介绍如何利用工具怎么样批量检测百度网盘分享失效的链接. 一.邓西百度网盘批量转存检测工具下载:https://pan.baidu.com/s/1S7NgHPFPbNCA6IvOeZSeEQ 二.解压并运行程序,如图: ? ①操作类型选择“检测失效”

sqlserver中自定义函数+存储过程实现批量删除

由于项目的需要,很多模块都要实现批量删除的功能.为了方便模块的调用,把批量删除方法写成自定义函数.直接上代码. 自定义函数: ALTER FUNCTION [dbo].[func_SplitById] (@str varchar(50),@split varchar(10))--传过来的id字符串 --分割的标志 RETURNS @t Table (id int) --返回一个表 AS BEGIN DECLARE @x XML --进行拼接 SET @x = CONVERT(XML,'<item

百度网盘盘批量修改文件名称云盘重命名手机

应用场景:保存别人分享的网盘链接文件,然而文件名称中有很多杂七杂八的信息,看着很不爽,或者说想替换成自己想要的信息,该怎么办呢?同时文件分散在各个文件夹中,如何把它们都找出来并批量替换重命名呢? 首先,下载网盘批量处理软件 https://www.lanzous.com/b825731/ ,软件界面和网页中打开自己的百度网盘一样,但是会多出很多批量操作的菜单栏,如:批量重命名.批量分享.批量转存.批量永存及批量生成目录树等功能. 其次,登录自己的网盘账号,登录后就可以使用批量操作了,批量重命名菜

[Oracle系列整理04] oracle pl/sql 基础

PL/SQL块中只能直接嵌入SELECT,DML(INSERT,UPDATE,DELETE)以及事务控制语句 (COMMIT,ROLLBACK,SAVEPOINT),而不能直接嵌入DDL语句(CREATE,ALTER,DROP)和DCL语句 (GRANT,REVOKE) 1.检索单行数据    1.1使用标量变量接受数据  v_ename emp.ename%type;  v_sal   emp.sal%type;  select ename,sal into v_ename,v_sal fro

PL/SQL详细介绍,设置oracle相关

1. 实现参照完整性      指若两个表之间具有主从关系(即主外键关系),当删除主表数据时,必须确保相关的从表数据已经被删除.  当修改主表的主键列数据时,必须确保相关从表数据已经被修改.为了实现级联删除,可在定义外部键约束时指定ON DELETE CASCADE关键字  alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno) on delete cascade; 实现级联更新,

laravel Eloquent操作

基本用法 我们先从建立一个 Eloquent 模型开始.模型通常放在 app 目录下,但是您可以将它们放在任何地方,只要能通过 composer.json 自动载入.所有的 Eloquent 模型都继承于Illuminate\Database\Eloquent\Model . 定义一个 Eloquent 模型 class User extends Model {} 你也可以通过 make:model 命令自动生成 Eloquent 模型: php artisan make:model User

高效插入语句

try { Connection conn = getConnection(TO_DRIVER,TO_URL,TO_USERNAME,TO_PASSWORD); conn.setAutoCommit(false); String sql = "insert into mc_stat_trends(clock,itemid,itemname,ip,num,value_min, value_avg, value_max) values(?,?,?,?,?,?,?,?)"; Prepared

Python中可避免读写乱码的一个强大方法

昨天在帮同学解析一批从网络上爬取的文件时,遇到一个奇葩的问题,文件本身的编码是gbk,Eclipse编辑环境的默认编码是utf8,使用常规的open方法批量打开文件时,某些文件中存在一些不可被gbk识别的特殊字符导致读取错误,而这些特殊字符又是存在于utf8编码中的.经不断尝试,发现一个很好的解决办法:使用Python自带的codecs.codecs就是为编码转码而生的,关于此功能的更多详情请移步 https://docs.python.org/3.2/library/codecs.html #