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 :

ouvrir des repertoires en intéraction avec un fichier shape


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    chargé d'études
    Inscrit en
    Janvier 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chargé d'études

    Informations forums :
    Inscription : Janvier 2015
    Messages : 93
    Par défaut ouvrir des repertoires en intéraction avec un fichier shape
    Bonjour,
    J'essaie d'écrire un code python dont l'objectif consiste à ouvrir les répertoires windows correspondants aux communes que je sélectionne dans une couche Shape "commune" (avec le logiciel Qgis).
    Je précise que la couche commune contient une colonne X avec les chemins d'accès aux répertoires des communes (exemple de chemin: V:/02_doc/commune1/)

    Voici mon code actuel. Il ne fonctionne pas (il ouvre ... le répertoire windows "'mes documents" )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import os
    X = os.path.dirname( unicode( qgis.utils.iface.activeLayer().dataProvider().dataSourceUri() ) )
    os.system("explorer " +  "[%"X"%]")
    layer = qgis.utils.iface.activeLayer()
    qgis.utils.iface.setActiveLayer(layer)
    Je remercie d'avance les spécialistes de python qui pourront m'aider.

    fcka

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 815
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Tu as écrit "[%"X"%]" qui signifient (pour moi) "concaténer "[%" avec X et avec "%]".
    Or la concaténation des strings Python se font via un "+" => "[%" + X + "%]".

    De plus, les "%" dans une string sont dangereux car ils peuvent signifier "ici il y aura une expression". Tu devrais utiliser mieux le formalisme "string" pour tes paramètres. Tente ceci os.system("explorer [%{0}%]".format(X))...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Homme Profil pro
    chargé d'études
    Inscrit en
    Janvier 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chargé d'études

    Informations forums :
    Inscription : Janvier 2015
    Messages : 93
    Par défaut
    bonsoir,
    je viens d'essayer
    je pointe toujours vers c:/mes documents.
    merci quand même,
    si quelqu'un d'autre a une idée.

    fcka

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 815
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fcka0001 Voir le message
    je pointe toujours vers c:/mes documents.
    si quelqu'un d'autre a une idée.
    Oui enfin c'est plus un problème de syntaxe Windows que Python. Si je veux ouvrir un explorateur sur "c:\boot" (par exemple), je tape alors dans une fenêtre MsDos explorer c:\boot. Je ne tape pas explorer [%c:\boot%] !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre confirmé
    Homme Profil pro
    chargé d'études
    Inscrit en
    Janvier 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chargé d'études

    Informations forums :
    Inscription : Janvier 2015
    Messages : 93
    Par défaut
    bonsoir,
    d'accord pour ce qui est de windows, mais moi je suis dans qgis, j'ai un shape qui représente les communes d'un département et j'ai besoin en cliquant sur une commune de me rendre dans le répertoire qui la concerne, lequel contient divers dossiers et je veux que ça marche pour toutes les communes.

    pour illustrer mon propos, j'ai un script (que j'ai trouvé) qui permet de faire quelque chose sur le même principe. Il permet d'ouvrir avec un clic, une dalle d'un raster (afin d'éviter de charger tout le raster). La grosse différence est que les chemins pointent des fichiers.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import os
    repertoire = os.path.dirname( unicode( qgis.utils.iface.activeLayer().dataProvider().dataSourceUri() ) )
    fic = "[% "repertoire" %]" + "[% "dalle" %]"
    layer = qgis.utils.iface.activeLayer()
    qgis.utils.iface.addRasterLayer(fic,"[% "dalle" %]")
    qgis.utils.iface.setActiveLayer(layer)
    je voudrai adapter ce principe à mon problème actuel.
    fcka

  6. #6
    Membre confirmé
    Homme Profil pro
    chargé d'études
    Inscrit en
    Janvier 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chargé d'études

    Informations forums :
    Inscription : Janvier 2015
    Messages : 93
    Par défaut
    bonsoir,
    donc, j'ai un shape qui représente les communes d'un département.
    L'une des variables (notée X ) du fichier contient les chemins d'accès aux répertoires liés à chaque commune.
    je voudrais cliquer sur une commune et accéder à "son" répertoire.

    ça a l'air simple.

    voici mon code actuel, il ne marche pas. Quand je clique sur une commune, il m'ouvre le répertoire où se situe le shape ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import os
    X = os.path.dirname( unicode( qgis.utils.iface.activeLayer().dataProvider().dataSourceUri() ) )
    cmd = "explorer " + '"{}"'.format(X)
    os.system(cmd)
    layer = qgis.utils.iface.activeLayer()
    qgis.utils.iface.setActiveLayer(layer)
    si quelqu'un peut m'aider, je suis preneur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créez des formulaires sans table avec le Data Shaping ADO
    Par Lou Pitchoun dans le forum Contribuez
    Réponses: 5
    Dernier message: 26/01/2009, 21h29
  2. Ouvrir des fichier avec VB sous excel
    Par sebastien06 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 13/09/2008, 22h38
  3. Impossibilité d'ouvrir des fichiers avec Access
    Par kmarcel dans le forum Access
    Réponses: 2
    Dernier message: 26/05/2008, 16h07
  4. Ouvrir des fichiers avec leur logiciel par défaut
    Par SyLvErStOrM dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2008, 16h56
  5. ouvrir des fichiers dans un repertoire
    Par Art19 dans le forum Delphi
    Réponses: 5
    Dernier message: 10/04/2007, 14h49

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