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

Printemps des cartes 2024

#1 Mon 15 January 2018 16:30

RS21
Juste Inscrit !
Lieu: Dijon
Date d'inscription: 19 Jul 2016
Messages: 7

Variable dans une sélection attributaire par Python

Bonjour à tous.

J'aimerais faire une sélection attributaire sur Python mais en insérant une variable dans l'expression.

De ce type :

Code:

import arcpy
n=1
arcpy.SelectLayerByAttribute_management ("ma_couche", "NEW_SELECTION", '"mon_champ" = n'

C'est au niveau de l'expression que je bloque, je ne connais pas la syntaxe à utiliser lorsqu'on a une variable.

Quelqu'un pour m'aider?

Hors ligne

 

#2 Mon 15 January 2018 19:58

Franck B
Membre
Lieu: PACA
Date d'inscription: 6 Sep 2005
Messages: 1382
Site web

Re: Variable dans une sélection attributaire par Python

Bonjour,

Cf. la doc du language : https://docs.python.org/2/library/stdty … str.format et https://docs.python.org/2/library/strin … matstrings

Il faudrait écrire :

Code:

'"mon_champ" = {}'.format(n)

Code:

import arcpy
n=1
arcpy.SelectLayerByAttribute_management ("ma_couche", "NEW_SELECTION", '"mon_champ" = {}'.format(n)

A+

Franck

PS : pour aller plus loin, un excellent article Le formatage des strings en long et en large.

Hors ligne

 

#3 Tue 16 January 2018 07:46

RS21
Juste Inscrit !
Lieu: Dijon
Date d'inscription: 19 Jul 2016
Messages: 7

Re: Variable dans une sélection attributaire par Python

Merci beaucoup Franck B pour cette réponse. J'ai juste dû rajouter un zéro entre les {} pour que ça fonctionne.

Voici le code final :

Code:

import arcpy
n=1
arcpy.SelectLayerByAttribute_management ( "ma_couche", "NEW_SELECTION", '"mon_champ" = {0}'.format(n) )

Hors ligne

 

Pied de page des forums

Powered by FluxBB