#1 Wed 21 May 2014 19:04
- Zebulon_29
- Juste Inscrit !
- Date d'inscription: 21 May 2014
- Messages: 6
Recherche mxd
Je cherche un moyen pour automatiser la recherche des mxd utilisant une couche (.lyr). En effet, celle-ci a été changé, je dois donc ensuite remplacer cette couche par la nouvelle couche.
Cette recherche concerne plusieurs lecteurs réseaux.
Merci pour l'aide que vous pourrez m'apporter.
Hors ligne
#2 Sat 24 May 2014 08:43
- lebon henri
- Participant actif
- Lieu: Vendée
- Date d'inscription: 14 Jan 2008
- Messages: 99
Re: Recherche mxd
salut, tu peux essayer le script ci-dessous.
Code:
import arcpy, os dossier = r"C:\toto" ## il s'agit là du dossier racine contetant les dossiers contenant les mxd newlyr = arcpy.mapping.Layer(r"C:\chemin de ton .lyr") for pathname, directories, filenames in os.walk(dossier): for filename in filenames: if filename.lower().endswith(".mxd"): mxdpath = os.path.join(pathname, filename) mxd = arcpy.mapping.MapDocument(mxdpath) for df in arcpy.mapping.ListDataFrames(mxd): for lyr in arcpy.mapping.ListLayers(mxd, "", df): if lyr.name == newlyr.name: ##on fait la une comparaison par le nom ## donc il faut être sur que les noms sois toujours les mêmes ##si tu as juste un layer simple on peut le faire avec la data source et même donc la vielle datasource pour la comparaison arcpy.mapping.InsertLayer(df, lyr, newlyr, "BEFORE") arcpy.mapping.RemoveLayer(df, lyr)
Hors ligne