Supprimer un champ (Gestion des données)

Résumé

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

Utilisation

  • Les champs ne peuvent pas être supprimés des formats de données en lecture seule non natifs dans ArcGIS, tels que les jeux de données VPF et DAO.

Syntaxe

arcpy.management.DeleteField(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 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

Sortie dérivée

NomExplicationType de données
out_table

Jeu de données mis à jour.

Vue tabulaire, couche raster, couche de mosaïque

Exemple de code

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

Le script de fenêtre Python ci-dessous illustre l’utilisation de la fonction DeleteField en mode immédiat :

import arcpy
arcpy.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 ci-dessous illustre l'utilisation de la fonction DeleteField.

# Name: DeleteField_Example2.py
# Description: Delete several fields from a feature class
  
# Import system modules
import arcpy
 
# Set environment settings
arcpy.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 la fonction DeleteField pour supprimer tous les champs inutiles d’une table ou d’une classe d’entités.

# Description: Delete unnecessary fields from a feature class or table.
 
# Import system modules
import arcpy
 
# 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(inTable)
# 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)

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes