Annonce
Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.
Vous allez recevoir un message pour effectuer ce changement de mot de passe.
Merci de bien respecter les règles préconisées.
#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