批量为shp文件加字段并赋值文件名

import sys, string, os, arcgisscripting


# Create the Geoprocessor object
gp = arcgisscripting.create()


# Load required toolboxes...
gp.AddToolbox("C:/Program Files (x86)/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
gp.OverWriteOutput = 1


# Local variables...
inputWorkspace=sys.argv[1]
gp.workspace=inputWorkspace
feaclasses=gp.ListFeatureClasses()
fea=feaclasses.Next()
i=0
while fea:
	try:
		gp.AddField_management(fea, "NAME", "TEXT", "", "", "", "", "NON_NULLABLE", "NON_REQUIRED", "")
		fileName=os.path.split(fea)[1]
		gp.CalculateField_management(fea, "NAME", "\""+fileName[0:-4] +"\"", "VB", "")
		i=i+1
		gp.AddMessage("第"+str(i)+"个文件:"+fea+"操作成功")
		fea=feaclasses.Next()
	except:	
		gp.AddMessage(fea+"操作失败")
del fea
del	feaclasses


功能:可以为一个文件夹下的所有地图分幅文件加NAME字段,并赋值该Shp文件的名字

举例:比如你有500个地图分幅文件shp格式,你想为这500个文件统一加一个name字段,并赋值地图分幅号,如果一个一个操作比较费时,这时就体现出脚本的价值了,类似工作可参考此脚本

版本:arcgis9.3,用10.0之后的版本需要参考修改

原创转载请挂链接!!!!!!!!!!!!!!

使用说明 本程序可以一次性对多个SHP文件相 同字段.增多个字段请输入字段和类 型,长度等不同参数即可实现. 要注意的 是, 存放SHP文件夹一定不能中文命 1. 请把本程序复制到 SHP文件夹中运行 例如复制到D:\123,将对D盘下123目录中 的所有SHP文件进行运算(包括子文件夹) 2. 因为 ARCMAP 的命令不支持中文文件名 所以存放SHP 的文文件夹请不要以中文 命或特殊符号命 3. ARCMAP的命令行不支持以数字开头.但可 在字段后面数字,如CODE1,CODE2.所以 字段不要用到数字开头,确实要用到数 字的请把SHP文转成TAB在MAPINFO里修改 但奇怪的是,直接在属性列表中却可以添 以数字开头的字段 4. 在运行程序后,请把弹出的记事本内容复 制到ARCMAP的命令行里粘帖后回车即可 5. 在XPSP2和2003SERVER系统中可以执行 不能在98中运行,2000的系统没测试 6.(还请哪位精通批处理的大侠指点一下) 目前尚有一个问题没有解决,就是同一类型 的字段如果要二个,不能连着.得关了程 序再开才能进行.否则弹的记事本内容中,前 面的内容还是上次的字段路径. 但可以连着不同的字段类型. 比如完TEXT类型的字段.不能接着TEXT 类型的字段,但可以DATE/FLOAT等其他类型 ___________________________________ 如果不能运行或出现其他错误,请到我的 百度空间留言说明你的情况及建议: http://hi.baidu.com/lgx8280998 -----为解决问题而学习 BY 千浪 2009-03-12
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值