Suite

Rechercher des MXD avec une couche dataSource spécifique à l'aide de Python

Rechercher des MXD avec une couche dataSource spécifique à l'aide de Python


Je travaille avec ArcGIS 10.3 et j'essaie de rechercher une couche spécifique (avec dataSource nommée "D:desktopProjectlayers1.jpg">


À partir de la documentation listfiles :

Renvoie une liste de fichiers dans l'espace de travail actuel en fonction d'une chaîne de requête

Donc, mxdname n'a pas d'attribut de chemin. C'est simplement une chaîne du nom mxd.


Enfin, j'ai utilisé ce code :

importer arcpy à partir d'arcpy importer le mappage en tant que m à partir du chemin d'importation du système d'exploitation, marcher root_directory = r"D:PROJECTS" path_to_find = r"F:GIS	opo_5000050000.sid" def FindMaps(root_directory, path_to_find): maps = [] pour root, dirnames, filenames in walk(root_directory): pour fname in [f for f in filenames if f.endswith(".mxd")]: mxdPath = path.join(root, fname) sinon path.isfile(mxdPath ): continue mxd = m.MapDocument(mxdPath) df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] pour df dans m.ListDataFrames(mxd): pour lyr dans m.ListLayers(mxd, data_frame=df ): if lyr.supports("DATASOURCE"): if lyr.dataSource == path_to_find: print(mxdPath) maps.append(mxdPath) break return map FindMaps(root_directory, path_to_find)

Voir la vidéo: Convert ArcGIS file types .lyr.mxd to QGIS with SLYR. burdGIS