Feld löschen (Data Management)
Zusammenfassung
Mit diesem Werkzeug können Sie ein oder mehrere Felder aus einer Tabelle, einer Feature-Class, einem Feature-Layer oder einem Raster-Dataset löschen.
Verwendung
-
Sie können es für alle Tabellen, ArcSDE-, File- oder Personal-Geodatabase-Feature-Classes, Coverages, Raster-Kataloge und Shapefiles verwenden.
-
Felder können nicht aus schreibgeschützten Datenformaten gelöscht werden, die nicht aus ArcGIS stammen, z. B. aus VPF- und CAD-Datasets.
-
Die Schaltfläche Feld hinzufügen des Parameters Feld entfernen wird nur in ModelBuilder verwendet. Der Parameter Feld entfernen kann in ModelBuilder nicht mit Feldnamen aufgefüllt werden, wenn das vorherige Werkzeug nicht ausgeführt wurde oder die abgeleiteten Daten nicht vorhanden sind. Mit der Schaltfläche Feld hinzufügen können Sie die erwarteten Felder hinzufügen, damit Sie das Dialogfeld "Feld löschen" fertigstellen und mit der Erstellung Ihres Modells fortfahren können.
Syntax
Parameter | Erläuterung | Datentyp |
in_table |
Die Tabelle, die die zu löschenden Felder enthält. Die vorhandene Eingabe-Tabelle wird geändert. | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
drop_field [drop_field,...] | Die Felder, die aus der Eingabe-Tabelle gelöscht werden sollen. Nur Felder, die nicht erforderlich sind, können gelöscht werden. | Field |
Codebeispiel
Im folgenden Skript im Python-Fenster wird veranschaulicht, wie Sie das Werkzeug "DeleteField" im unmittelbaren Modus verwenden:
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"])
Das folgende eigenständige Skript veranschaulicht, wie Sie das Werkzeug "DeleteField" verwenden:
# 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)
Verwenden Sie "DeleteField" zum Löschen aller unnötigen Felder aus einer Feature-Class oder Tabelle.
# 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