IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

caractère d'échappement directive r


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut caractère d'échappement directive r
    Bonjour,

    j'essaie de boucler sur des chemin et je ne trouve pas de solution pour inclure à ma variable la directive r afin convertir les chemins en chaînes brutes Python.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    lien="c...
    for dirpath, dirnames, filenames in os.walk (lien):
        for filename in filenames:
            if fnmatch.fnmatch (filename, '*.shp'):
                addLayer = arcpy.mapping.Layer(dirpath+ "//"+filename)
                arcpy.mapping.AddLayer (df,addLayer,"TOP")
    merci de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Remplace dirpath+ "//"+filename par os.path.join(dirpath, filename)

    Python ajuste lui-même les chemins Unix ou Windows.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut
    merci de ton aide,

    j'ai essayé ta solution mais il ne veux rien savoir
    toujours cette erreur "ValueError: Objet\xa0: source de donn\xe9es non valide dans la couche CreateObject"

    c'est le liend e la fonction que j'utilise >>arcpy.mapping.Layer http://resources.arcgis.com/en/help/...00000008000000

    Ok merci , cela a fonctionner....:-)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Le fichier a passer à arcpy.mapping.Layer est un .lyr(un fichier "layer"), en lui donnant un .shp (un fichier "shape") que faire sinon planter avec "source de données non valide"
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Par défaut
    oui, je sais mais c'est la doc qui est imcompléte :-(, ça fonctionne bien avec l'extension shp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    import arcpy
    import os
    import fnmatch
     
    mxd = arcpy.mapping.MapDocument ('current')
    df = arcpy.mapping.ListDataFrames(mxd, "Couches")[0]
     
    lien=r"\\BD_TOPO_2012\BD"
     
    for dirpath, dirnames, filenames in os.walk (lien):
        for filename in filenames:
            if fnmatch.fnmatch (filename, '*COMMUNE*'):
     
     
     
                tab=dirpath[73:75]
                os.rename(dirpath+"\\"+filename,dirpath+"\\"+tab+filename)
     
    for dirpath, dirnames, filenames in os.walk (lien):
        for filename in filenames:
            if fnmatch.fnmatch (filename, '*COMMUNE.SHP'):
                addLayer = arcpy.mapping.Layer(dirpath+ "//"+filename)
                arcpy.mapping.AddLayer (df,addLayer,"TOP")
    j'ai du faire deux boucles pour réaliser mon traitement

    d'abord changer le nom du fichier puis l'ajouter dans la table des matières de mon logiciel afin de réaliser des traitements.
    Je me suis surement mal pris mais impossible de le faire dans une seule boucle!!!

    merci de votre aide

Discussions similaires

  1. caractère d'échappement pour un '
    Par alexfrere dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 04/07/2006, 11h07
  2. caractère d'échappement de '['
    Par Ecibat dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 19/12/2005, 14h27
  3. Caractères d'échappement
    Par dl_jarod dans le forum ASP
    Réponses: 2
    Dernier message: 26/10/2005, 10h36
  4. caractéres d'échappements
    Par kleenex dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2005, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo