Supprimer un champ (Gestion des données)

Niveau de licence :BasicStandardAdvanced

Récapitulatif

Cet outil supprime un ou plusieurs champs d'une table, d'une classe d'entités, d'une couche d'entité ou d'un jeu de données raster.

Utilisation

Syntaxe

DeleteField_management (in_table, drop_field)
ParamètreExplicationType de données
in_table

Table contenant les champs à supprimer. La table en entrée existante est modifiée.

Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View
drop_field
[drop_field,...]

Champs à supprimer de la table en entrée. Seuls les champs non obligatoires peuvent être supprimés.

Field

Exemple de code

Exemple d'utilisation de l'outil DeleteField (fenêtre Python)

Le script de fenêtre Python suivant montre comment utiliser l'outil DeleteField en mode immédiat.

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"])
Exemple 2 d'utilisation de l'outil DeleteField (script autonome)

Le script autonome suivant montre comment utiliser l'outil 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)
Exemple 3 d'utilisation de l'outil DeleteField (script autonome)

Utilisez DeleteField pour effacer tous les champs inutiles d'une table ou d'une classe d'entités.

# Name: DeleteFields_clearfields.py
# Description: Delete unrequired fields from a feature class or tble.
 
# 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 as e:
    # If an error occurred, print line number and error message
    import traceback
    import sys
    tb = sys.exc_info()[2]
    print("Line {0}".format(tb.tb_lineno))
    print(e.message)

Environnements

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic: Oui
ArcGIS for Desktop Standard: Oui
ArcGIS for Desktop Advanced: Oui
6/5/2014