: le nom 'B' n'est pas défini lorsque j'exécute ce script. Pourquoi mon « B » n'est-il pas défini et s'agit-il d'une erreur de syntaxe ? Pour plus de précision, j'essaie d'obtenir le code…" /> : le nom 'B' n'est pas défini lorsque j'exécute ce script. Pourquoi mon « B » n'est-il pas défini et s'agit-il d'une erreur de syntaxe ? Pour plus de précision, j'essaie d'obtenir le code…" />
Suite

Vous obtenez l'erreur « exceptions.NameError » dans le script Python ?

Vous obtenez l'erreur « exceptions.NameError » dans le script Python ?


Je suis en train: le nom 'B' n'est pas définiquand j'exécute ce script.

Pourquoi mon « B » n'est-il pas défini et s'agit-il d'une erreur de syntaxe ?

Pour plus de clarté, j'essaie de faire en sorte que le code parcoure des fichiers de formes spécifiques dans le dossier "My DocumentsArcGIS… " et de les copier dans "My DocumentsNewFolder… " La variable A représente une liste des des fichiers de formes spécifiques que je souhaite copier d'un dossier vers un nouveau ; le problème que j'ai est de définir B, où le nom de variable individuel de A est automatiquement reporté/lu dans n'importe quelle partie du code. J'essaie de dire à Arc que chaque fois qu'il voit "+STATE+" (qui devrait être vu comme B: problème principal), il doit insérer le nom de variable spécifique répertorié dans A, le traiter (dans ce cas, copier), puis revenir en arrière à la prochaine variable spécifiée, jusqu'à ce qu'elle atteigne la fin de la liste.

Je voudrais copier le 'FL_RechargeArea' à travers Les fichiers de formes 'GA_AreaofContribution' du dossier "My DocumentsArcGIS… " dans le dossier "My DocumentsNewFolder… " et enregistrez-les sous le nom '(specific-varialbe-name)2.shp'.

Il s'agit beaucoup moins de copier que de pouvoir parcourir et traiter des noms de fichiers de formes spécifiques dans un dossier, plutôt que de parcourir et de traiter peut-être toute la liste dans un dossier.

# Importer le module arcpy import arcpy pour A dans B : # Variables locales : A = ['FL_RechargeArea','FL_AquiferProtectionArea','FL_AreaofContribution','GA_RechargeArea','GA_AquiferProtectionArea','GA_AreaofContribution'] B = "STATE" New_Shapefile = " Mes documentsArcGIS"+STATE+".shp" Output_from_New_Shapefile = "Mes documentsNewFolder"+STATE+"2.shp" # Processus : Copier les fonctionnalités arcpy.CopyFeatures_management(New_Shapefile , Output_from_New_Shapefile, "", "0", "0", "0")

Vous faites référence aux variables en commençant à itérer des éléments dans votre code avant de déclarer réellement les variables.

La syntaxe correcte serait :

#Importer le module arcpy import arcpy # Variables locales : A =['FL_RechargeArea','FL_AquiferProtectionArea','FL_AreaofContribution','GA_RechargeArea','GA_AquiferProtectionArea','GA_AreaofContribution'] B = "STATE" New_Shapefile = "My DocumentsArcGIS"+STATE+".shp" Output_from_New_Shapefile = "My DocumentsNewFolder"+STATE+"2.shp" pour A dans B : # Processus : Copier les fonctionnalités arcpy.CopyFeatures_management(New_Shapefile , Output_from_New_Shapefile, "", "0", "0", "0")

Une autre chose est que vous voulez donner à vos variables des noms qui ont du sens. Veuillez vous référer au guide de style Python PEP-8.

Votre script ne copiera cependant aucun fichier de formes en utilisant les variables a et b car vous ne les utilisez pas dans le code. Vous voudrez probablement utiliser la méthode str.format() pour insérer les valeurs des variables dans le nom du fichier de formes de sortie. Recherchez des exemples d'utilisation du code str.format() ici et dans l'aide d'Esri.


Voir la vidéo: Python script + DLL Injection with BoomER