Vérification de l'existence de données

Pour vérifier l'existence de données dans un script, utilisez la fonction Exists.

Exists(jeu de données)

Vérifie l'existence de classes d'entités, de tables, de jeux de données, de fichiers de formes, d'espaces de travail, de couches ou d'autres fichiers dans l'espace de travail courant lors de l'exécution. La fonction renvoie une valeur booléenne indiquant si l'élément existe.

Fonction Exists

Lors de la vérification de l'existence de données géographiques, vous devez utiliser la fonction Exists, car elle reconnaît les chemins d'accès de catalogue. Un chemin d'accès de catalogue est un chemin d'accès uniquement reconnu par ArcGIS. Par exemple : D:\Data\Final\Infrastructure.gdb\EastValley\powerlines fait référence à la classe d'entités powerlines figurant dans le jeu de classes d'entités EastValley dans la géodatabase fichier Infrastructure. Il ne s'agit pas d'un chemin d'accès système valide pour ce qui est du système d'exploitation Windows, car Infrastructure.gdb (dossier) ne contient aucun fichier nommé Infrastructure. En bref, Windows ne connaît ni les jeux de classes d'entités ni les classes d'entités, donc vous ne pouvez pas utiliser les fonctions d'existence Python telles que os.path.exists. Bien entendu, tous les éléments propres à ArcGIS savent utiliser les chemins d'accès de catalogue. Les chemins UNC (Universal Naming Convention) peuvent être utilisés également.

import arcpy
from arcpy import env

env.workspace = "d:/St_Johns/data.gdb"
fc = "roads"

# Clip a roads feature class if it exists
#
if arcpy.Exists(fc):
   arcpy.Clip_analysis(fc,"urban_area","urban_roads")
AstuceAstuce :

La fonction Exists respecte l'environnement de l'espace de travail de géotraitement permettant de spécifier uniquement le nom de base.

Si les données résident dans une géodatabase d'entreprise, le nom doit être qualifié.

import arcpy
from arcpy import env

env.workspace = "Database Connections/Bluestar.sde"
fc = "ORASPATIAL.Rivers"

# Confirm that the feature class exists
#
if arcpy.Exists(fc): 
    print "Verified %s exists" % fc 

Dans les scripts, le comportement par défaut pour tous les outils consiste à ne remplacer aucune entrée qui existe déjà. Ce comportement peut être modifié en définissant la propriété overwriteOutput sur True (arcpy.env.overwriteOutput = True). Toute tentative de remplacer une entrée alors que l'option overWriteOutput a la valeur False provoque l'échec d'un outil.

Rubriques connexes


7/10/2012