删除字段 (数据管理)
摘要
此工具可从表、要素类、要素图层或栅格数据集中删除一个或多个字段。
用法
-
此工具适用于任何表;ArcSDE、文件或个人地理数据库要素类;coverage;栅格数据集或 shapefile。
-
不能从 ArcGIS 的非本地只读数据格式中删除字段,例如:VPF 和 CAD 数据集。
-
删除字段参数的添加字段按钮仅可以在“模型构建器”中使用。在模型构建器中,如果先前的工具尚未运行或其派生数据不存在,则可能不会使用字段名称来填充删除字段参数。添加字段按钮可用于添加所需字段,以完成“删除字段”对话框并继续构建模型。
语法
DeleteField_management (in_table, drop_field)
参数 | 说明 | 数据类型 |
in_table |
包含要删除字段的表。将修改现有输入表。 | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
drop_field [drop_field,...] | 要从输入表中删除的字段。必填字段不能删除。 | Field |
代码示例
DeleteField 示例(Python 窗口)
以下 Python 窗口脚本演示了如何在立即模式下使用 DeleteField 工具:
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.CopyFeatures_management("majorrds.shp", "C:/output/majorrds_copy.shp") arcpy.DeleteField_management("C:/output/majorrds_copy.shp", ["STREET_NAM", "LABEL", "CLASS"])
DeleteField 示例 2(独立脚本)
以下独立脚本演示了如何使用 DeleteField 工具:
# Name: DeleteField_Example2.py # Description: Delete several fields from a feature class # Author: ESRI # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Set local variables inFeatures = "accident.dbf" outFeatureClass = "C:/output/new_accident.dbf" dropFields = ["STREET_NAM", "LABEL", "CLASS"] # Execute CopyFeatures to make a new copy of the feature class # Use CopyRows if you have a table arcpy.CopyFeatures_management(inFeatures, outFeatureClass) # Execute DeleteField arcpy.DeleteField_management(outFeatureClass, dropFields)
DeleteField 示例 3(独立脚本)
使用 DeleteField 可从要素类或表中清除所有不需要的字段。
# Name: DeleteFields_clearfields.py # Description: Delete unrequired fields from a feature class or tble. # Author: ESRI # Import system modules import arcpy from arcpy import env try: # Get user-supplied input and output arguments inTable = arcpy.GetParameterAsText(0) updatedTable = arcpy.GetParameterAsText(1) # Describe the input (need to test the dataset and data types) desc = arcpy.Describe(updatedTable) # Make a copy of the input (so we can mantain the original as is) if desc.datasetType == "FeatureClass": arcpy.CopyFeatures_management(inTable, updatedTable) else: arcpy.CopyRows_management(inTable, updatedTable) # Use ListFields to get a list of field objects fieldObjList = arcpy.ListFields(updatedTable) # Create an empty list that will be populated with field names fieldNameList = [] # For each field in the object list, add the field name to the # name list. If the field is required, exclude it, to prevent errors for field in fieldObjList: if not field.required: fieldNameList.append(field.name) # dBASE tables require a field other than an OID and Shape. If this is # the case, retain an extra field (the first one in the original list) if desc.dataType in ["ShapeFile", "DbaseTable"]: fieldNameList = fieldNameList[1:] # Execute DeleteField to delete all fields in the field list. arcpy.DeleteField_management(updatedTable, fieldNameList) except Exception, e: # If an error occurred, print line number and error message import traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.message
环境
相关主题
许可信息
ArcView: 是
ArcEditor: 是
ArcInfo: 是
7/10/2012