arcpy批量删除/添加 shp 文件字段:
(1)批量删除字段DeleteField_management
此工具可从表、要素类、要素图层或栅格数据集中删除一个或多个字段。
DeleteField_management (in_table, drop_field)
in_table:包含要删除字段的表。将修改现有输入表。(矢量图层)
drop_field、[drop_field,...]:要从输入表中删除的字段 (名称或者列表)。必填字段不能删除。除了 FID 和 SHAPE 必须保留一个字段。
示例代码:
import arcpy
# 获取 shp 的所有字段
fields = arcpy.ListFields("union")
# 获取所有字段的名称
f_names = []
for f in fields: f_names.append(f.name)
# 通过字段名称删除字段
arcpy.DeleteField_management("union", f_names[3:])
(2)批量增加字段AddField_management
向表或要素类表、要素图层、栅格目录和/或带属性表的栅格添加新字段。
AddField_management (in_table, field_name, field_type, {field_precision}, {field_scale}, {field_length}, {field_alias}, {field_is_nullable}, {field_is_required}, {field_domain})
-----
in_table:要添加指定字段的输入表。该字段将被添加到现有输入表,并且不会创建新的输出表。
field_name:要添加到输入表的字段的名称。
field_type:新字段的字段类型。(TEXT、FLOAT等)
示例代码:
from arcpy import *
# 添加一个字符串字段,长度默认
AddField_management("union", "Name", "TEXT")
# 长度为 5
AddField_management("union", "Name2", "TEXT", field_length=5)