Supprimer un champ (Gestion des données)

Synthèse

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.

Paramètres

ÉtiquetteExplicationType de données
Table en entrée

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

Mosaic Layer; Raster Layer; Table View
Champ à supprimer

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

Field

Sortie obtenue

ÉtiquetteExplicationType de données
Mettre à jour la table en entrée

Jeu de données mis à jour.

Vue tabulaire, couche raster, couche de mosaïque

arcpy.management.DeleteField(in_table, drop_field)
NomExplicationType 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 obtenue

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)

Environnements

Cas particuliers

Informations de licence

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

Rubriques connexes