Annonce
Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.
Vous allez recevoir un message pour effectuer ce changement de mot de passe.
Merci de bien respecter les règles préconisées.
#1 Tue 01 December 2015 10:24
ArcPy : ajouter plusieurs champs à une table
Bonjour,
J'essaie d'ajouter plusieurs champs à une couche avec ArcPy mais j'ai un peu de difficulté...
Voici le script que j'essaie d'utiliser...
>>> import arcpy
>>> from functools import partial
>>> arcpy.env.workspace = "CURRENT"
>>> shapefile = "REQUETE_URBA_2015.shp"
>>> fields = ["CHRDC", "ORCONT", "ZBRUIT", "AC2", "ICOMM", "PBOIS"]
>>> addfield = partial(
... arcpy.AddField_management,
... shapefile,
... field_type="TEXT")
... for field in fields:
... arcpy.AddField_management(shapefile, field)
Et le résultat
Parsing error IndentationError: unexpected indent (line 10)
A priori ça bloquerait à la ligne 10 du code mais j'ai du mal à voir d'où vient le souci...
Si quelqu'un pouvait éclairer ma lanterne ce serait très gentil
Merci beaucoup d'avance !
Hors ligne
#2 Tue 01 December 2015 13:10
- lebon henri
- Participant actif
- Lieu: Vendée
- Date d'inscription: 14 Jan 2008
- Messages: 99
Re: ArcPy : ajouter plusieurs champs à une table
Bonjour,
Vous avez une simple erreur d'indentation. Très classique. Voici un article sur l'indentation en python, ça vous aidera à l'avenir. http://python.developpez.com/cours/Dive … g_code.php
Mais quoi qu'il arrive, essayez plutôt un truc comme ça:
Code:
import arcpy fc = r"C:\Users\hlebon\Documents\ArcGIS\Default.gdb\toto22" fieldNames = ["CHRDC", "ORCONT", "ZBRUIT", "AC2", "ICOMM", "PBOIS"] for fieldName in fieldNames: fieldLength = 50 arcpy.AddField_management(fc, fieldName, "TEXT", "", "", fieldLength)
Hors ligne
#3 Tue 01 December 2015 17:25
Re: ArcPy : ajouter plusieurs champs à une table
Bonjour,
Merci pour votre aide !
Votre script marche très bien.
De mon côté le script corrigé donne quelque chose comme ça :
Code:
import arcpy from functools import partial arcpy.env.workspace="CURRENT" fc = r"C:\Users\lbe\Desktop\temp\REQUETE_URBA_2015.shp" fieldNames = ["CHRDC", "ORCONT", "ZBRUIT", "AC2", "ICOMM", "PBOIS"] for fieldName in fieldNames: arcpy.AddField_management(fc,fieldName)
Je pense que le précédent script ne marchait pas car j'avais écrit "for field in fields:" et non "for fieldName in fields:"
Merci
Hors ligne