Suite

Erreur de débogage 000664 lors de la modification du nom du champ avec arcpy.AlterField_management() ?

Erreur de débogage 000664 lors de la modification du nom du champ avec arcpy.AlterField_management() ?


J'essaie de modifier un nom de champ dans les classes d'entités (shapefiles) à l'aide d'AlterField_management, mais je reçois le message d'erreur suivant :

Erreur d'exécution Traceback (appel le plus récent en dernier) : Fichier "", ligne 14, dans Fichier "c:program files (x86)arcgisdesktop10.3arcpyarcpymanagement.py", ligne 3332, dans AlterField raise e ExecuteError : ERREUR 000664 : Entrée non valide : le type de jeu de données n'est pas pris en charge.

Le code:

importer arcpy à partir du chemin d'importation du système d'exploitation arcpy.env.overwriteOutput = True arcpy.env.workspace = r'C:johnny	rial' pour fc dans arcpy.ListFeatureClasses() : fieldList = arcpy.ListFields(fc) pour le champ dans fieldList : #if field.baseName != "NEAR_DIST": arcpy.AlterField_management(fc, 'NEAR_DIST', 'distance', "distance", "DOUBLE")

Dans l'aide pour arcpy.AlterField_management(), il est dit avec mes caractères gras :

Cet outil offre la possibilité de renommer des champs ou de renommer des alias de champ pour n'importe quel table de géodatabase ou classe d'entités.

À partir de votre code, l'espace de travail que vous avez défini, qui est un dossier plutôt qu'une géodatabase, me fait penser que vous essayez de l'utiliser sur des fichiers de formes au lieu de classes d'entités.


Il semble que vous ayez un problème d'indentation - l'exemple est-il correctement formaté ?

Les dernières lignes doivent être

pour fc dans arcpy.ListFeatureClasses() : fieldList = arcpy.ListFields(fc) pour le champ dans fieldList : #if field.baseName != "NEAR_DIST": arcpy.AlterField_management(fc, 'NEAR_DIST', 'distance', "distance" , "DOUBLE")

Si fc est hors de portée, il sera transmis à AlterField_management en tant que None et générera une erreur d'entrée non valide.


Voir la vidéo: ArcGIS Pro - How to add a new field and update the field information using python