使用Python/arcpy批量向shp文件添加字段

版權聲明:轉載請註明作者(獨孤尚良dugushangliang)出處:https://blog.csdn.net/dugushangliang/article/details/103874623

 

相關需要,所以要實現這個,以下內容經驗確實(經過驗證確定屬實)。

官方文檔得:

import arcpy as ap
ap.env.workspace='D:/temp'

先把shp文件所在文件路徑設置爲工作空間。下面三種操作,都是向ga2.shp文件中添加字段的,添加類型本處是雙精度,第二個參數是字段名,第三個參數是字段類型,都可根據需要更改。

ap.AddField_management(u'ga2',u'area2010',"DOUBLE")
ap.AddField_management(u'ga2.dbf',u'area2010',"DOUBLE")
ap.AddField_management(u'ga2.shp',u'area2010',"DOUBLE")

需要註明:“年份2020年”這樣的字段名稱,會報錯,下圖中第一個是Python窗口的反饋,第二個是直接手動添加的反饋。

剛開始我以爲是代碼有問題,後來發現這是shp本身的機制導致的。

這個有字段名稱長度限制。

限制英文10位,中文5位,一箇中文相當於一個英文或數字。不過這不是絕對的,還得看版本,感謝塵無的圖:

那麼,如果想要比較長的字段名稱怎麼辦?別用shp了,用gdb吧。

ap.AddField_management('cities',u'面積2000年',"DOUBLE")

那批量怎麼搞?來個for循環就成了。

li=[u'字段1名稱',u'字段2名稱',u'字段3名稱',u'字段4名稱',u'字段5名稱']

for i in li:
  ap.AddField_management('cities',i,"DOUBLE")

這是批量同類型的,如果不是,那就做個字典,for key,value in di.items()。

 

獨孤尚良dugushangliang——著

發佈了143 篇原創文章 · 獲贊 57 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章