Vérification de l'existence de données

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

Exists(dataset)

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 données d'entité 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 données d'entité 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

arcpy.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")
Conseil :

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

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

# Confirm that the feature class exists
#
if arcpy.Exists(fc): 
    print("Verified {} exists".format(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 attribuant à la propriété overwriteOutput la valeur True (arcpy.env.overwriteOutput = True). Toute tentative de remplacer une entrée alors que la propriété overwriteOutput est définie sur False provoque l'échec d'un outil.