arcpy 批量添加字段

今天和一個妹紙聊天她說她現在在做農經權項目,不是科班出身的她對arcgis充滿仇恨,她提到做完一個小組又要重新建shp和屬性字段,而且屬性字段超多記不住啊!我說重覆勞動事情就要arcpy幫我們做把。她說那就交給你。。。。。。。。。。。。

     一下懵懂了,於是就拼命的找資料終於找到一份源碼,像我這種懶人直接複製——粘貼,在執行時不報錯就是不出結果。又懵懂了!於是只能一遍又一遍看源碼,不懂查看幫助文檔。經過兩小時折騰才調試成功!

import arcpy
import os
# 引入當前地圖文檔
mymxd =arcpy.mapping.MapDocument("current")
ary =arcpy.mapping.ListLayers(mymxd)
fieldname=["BSM","DKMC","DKXH","ZDZL","DKDZ","DKXZ","DKNZ","DKBZ","SYQXZ","CBJYQZBM","SCMJM","SCMJ","SFJBNT","HTMJ","ELYBMJM","ELYBMJ","TDLYLX","TDYT","DLDJ","CBFMC","CBFBM","DKLB"]
aliasname=["標識碼","地塊名稱","地塊序號","宗地坐落","地塊東至","地塊西至","地塊南至","地塊北至","所有權性質","承包經營權編碼","實測面積(畝)","實測面積","是否基本農田","合同面積","二輪延包面積(畝)","二輪延包面積","土地利用類型","土地用途","地力等級","承包方名稱","承包方編碼","地塊類別"]
def AddNewField2(in_table,fieldname):
    zidian ={}
     i= 0
    while i <=21:
         zidian[fieldname[i]]=aliasname[i]
         i=i+1
    for fn in fieldname:
            
             arcpy.AddField_management(in_table,fn,"TEXT")

for lyr in ary:
    in_table= lyr.dataSource
    if in_table.find(".shp") > 0:
          AddNewField2(in_table,fieldname)
    else:
          next
          
    arcpy.DeleteField_management(in_table,"Id")
del mymxd
arcpy.RefreshActiveView()


參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章