【ArcPy】批量添加字段
先看如何增加一个字段
函数:arcpy.AddField_management
语法:AddFields_management (in_table, field_description)
参数 |
说明 |
数据类型 |
in_table |
要添加指定字段的输入表。该字段将被添加到现有输入表,并且不会创建新的输出表。 可将字段添加到 ArcSDE 的要素类、文件或个人地理数据库的要素类、coverage、shapefile、栅格目录、独立表、带属性表的栅格和/或图层。 |
Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
field_name |
要添加到输入表的字段的名称。 |
String |
field_type |
在创建新字段时所使用的字段类型。
|
String |
field_precision (可选) |
描述可存储在字段中的位数。所有位都将被计算在内,而无论其处于小数点的哪一侧。 如果输入表是个人或文件地理数据库,则将忽略字段精度值。 |
Long |
field_scale (可选) |
设置可存储在字段中的小数位数。此参数仅可用于浮点型和双精度数据字段类型。 如果输入表是个人或文件地理数据库,则将忽略字段小数位数值。 |
Long |
field_length (可选) |
要添加的字段的长度。它为字段的每条记录设置最大允许字符数。此选项仅适用于文本或 blob 类型的字段。 |
Long |
field_alias (可选) |
指定给字段名称的备用名称。此名称用于为含义隐晦的的字段名称指定更具描述性的名称。字段别名参数仅适用于地理数据库和 coverage。 |
String |
field_is_nullable (可选) |
不存在关联属性信息的地理要素。它们与零或空字段不同,仅支持地理数据库中的字段。
|
Boolean |
field_is_required (可选) |
指定要创建的字段是否是表的必填字段;仅支持地理数据库中的字段。
|
Boolean |
field_domain (可选) |
用于约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。必须指定现有属性域的名称才能将其应用于字段。 |
String |
例:
要对“省级行政区域”增加一个名为“Area”,类型是“Text”,长度是100的字段。
arcpy.AddField_management("省级行政区域",'Area',"TEXT",field_length=100)
①第1参“输入表”与第2参“字段名”是必选参数;
②其他参数为字段描述,可选,最好使用具名参数,如field_length=100。
批量添加字段的处理思路及代码
例:给“省级行政区域”添加“字段。
①用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
#next line line=f.readline() #close the txt file f.close()
④使用该脚本时只需要改动“Fields Description.txt”描述文件的路径与待处理的要素名(或路径)即可。
Ps 示例中长度、精度均为随意写的,并不准确。