记录最近的学习(一.对当前mxd中所有图层的属性表中存在某个字段的值进行替换)

    最近在做数据时需要对整个过程数据进行保留,以防后续会有修改。数据有很多个layer,且涉及到很多关于code的字段,最开始是直接用编辑工具打开属性表一个表一个表替换,因为数量太多,有出现改漏了情况。就想着还是学习看看用脚本解决。保存脚本文件为.py (跟新建工具箱目录一致)

# -*- coding: utf-8 -*-
import arcpy, math, os
import sys
import re
reload(sys)
sys.setdefaultencoding('utf-8')

OldstationCode = arcpy.GetParameterAsText(0)#参数1:需要更改的字符串
NewstationCode = arcpy.GetParameterAsText(1)#参数2:更改后的字符串

mxd = arcpy.mapping.MapDocument("CURRENT")#获取当前MXD
lys = arcpy.mapping.ListLayers(mxd)#获取当前MXD下所有layers

lists = [ ["字段1" ,"字段2","字段3"]#需要更改的字段的名称

for ly in lys:
 # 确定某个图层是否为图层组:第一查看该图层是否支持 isGroupLayer 属性。第二longName 属性
 # 对非图层组的图层进行处理
    if ly.isGroupLayer:
        continue
    else:
#获取ly的字段,如果ly的某字段名称存在于list则进行修改(用的字段计算器里的replace)
        flds = arcpy.ListFields(ly)
        for fld in flds:
            if fld.name in lists:
                arcpy.CalculateField_management(ly, fld.name,"""Replace([{0}],"{1}","{2}")""".format(fld.name,OldstationCode,NewstationCode), "VB")

    刚开始学习,记录细致点。

新建工具箱——添加脚本——命名——下一步然后把刚才的脚本文件添加进来——完成

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值