Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 01 December 2015 10:24

loloseven
Participant assidu
Lieu: Grenoble
Date d'inscription: 5 Jan 2011
Messages: 167
Site web

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 smile

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

loloseven
Participant assidu
Lieu: Grenoble
Date d'inscription: 5 Jan 2011
Messages: 167
Site web

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 smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB