ArcGis Python腳本——批量添加字段

插個廣告,製做ArcGIS的Tool工具學習下面的教程就對了:
零基礎學習Python製做ArcGIS自定義工具觀看連接
《零基礎學習Python製做ArcGIS自定義工具》課程簡介

如下是正文:html


 

先看如何增長一個字段

函數:arcpy.AddField_management數據庫

語法:AddFields_management (in_table, field_description)dom

參數函數

說明工具

數據類型學習

in_tableui

要添加指定字段的輸入表。該字段將被添加到現有輸入表,而且不會建立新的輸出表。編碼

可將字段添加到 ArcSDE 的要素類、文件或我的地理數據庫的要素類、coverage、shapefile、柵格目錄、獨立表、帶屬性表的柵格和/或圖層。spa

Mosaic Layer;code

Raster Catalog Layer;

Raster Layer;

Table View

field_name

要添加到輸入表的字段的名稱。

String

field_type

在建立新字段時所使用的字段類型。

  • TEXT —名稱或其餘文本特性。
  • FLOAT —特定範圍內含小數值的數值。
  • DOUBLE —特定範圍內含小數值的數值。
  • SHORT —特定範圍內不含小數值的數值;編碼值。
  • LONG —特定範圍內不含小數值的數值。
  • DATE —日期和/或時間。
  • BLOB —影像或其餘多媒體。
  • RASTER —柵格影像。
  • GUID —GUID 值

String

field_precision

(可選)

描述可存儲在字段中的位數。全部位都將被計算在內,而不管其處於小數點的哪一側。

若是輸入表是我的或文件地理數據庫,則將忽略字段精度值。

Long

field_scale

(可選)

設置可存儲在字段中的小數位數。此參數僅可用於浮點型和雙精度數據字段類型。

若是輸入表是我的或文件地理數據庫,則將忽略字段小數位數值。

Long

field_length

(可選)

要添加的字段的長度。它爲字段的每條記錄設置最大容許字符數。此選項僅適用於文本或 blob 類型的字段。

Long

field_alias

(可選)

指定給字段名稱的備用名稱。此名稱用於爲含義隱晦的的字段名稱指定更具描述性的名稱。字段別名參數僅適用於地理數據庫和 coverage。

String

field_is_nullable

(可選)

不存在關聯屬性信息的地理要素。它們與零或空字段不一樣,僅支持地理數據庫中的字段。

  • NON_NULLABLE —字段不容許空值。
  • NULLABLE —字段容許空值。這是默認設置。

Boolean

field_is_required

(可選)

指定要建立的字段是不是表的必填字段;僅支持地理數據庫中的字段。

  • NON_REQUIRED —字段不是必填字段。這是默認設置。
  • REQUIRED —此字段是必填字段。必填字段具備永久性,不能刪除。

Boolean

field_domain

(可選)

用於約束地理數據庫中的表、要素類或子類型的任何特定屬性的容許值。必須指定現有屬性域的名稱才能將其應用於字段。

String

例:

要對「省級行政區域」增長一個名爲「Area」,類型是「Text」,長度是100的字段。

arcpy.AddField_management("省級行政區域",'Area',"TEXT",field_length=100)

①第1參「輸入表」與第2參「字段名」是必選參數;

②其餘參數爲字段描述,可選,最好使用具名參數,如field_length=100。

批量添加字段的處理思路及代碼

例:給「省級行政區域」添加「A、B、C、D」4個字段。

①用Excel製做出字段及其描述表;

②複製除標題行覺得的內容,粘貼到txt文檔,替換空格爲「,」(英文符號,);

③arcpy批量添加字段,導入「Fields Description.txt」描述,每一行line是1個字段信息,將每行信息用「,」拆分裝入列表lineList;新建字段各屬性描述使用「具名參數=列表lineList各索引值指示數據的方式傳入;

import arcpy #get txt file
f=open("C:/Users/yang/Desktop/Fields Description.txt",'r') #read line
line=f.readline() while line: lineList=line.split(',') #add field
    arcpy.AddField_management("省級行政區域",field_name=lineList[0],field_type=lineList[1],field_length=lineList[2],field_precision=lineList[3],field_scale=lineList[4].replace("\n","")) #next line #code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416
    line=f.readline() #close the txt file
f.close()

④使用該腳本時只須要改動「Fields Description.txt」描述文件的路徑與待處理的要素名(或路徑)便可。

 

Ps 示例中長度、精度均爲隨意寫的,並不許確。

相關文章
相關標籤/搜索