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 :

Rechercher un fichier dans une arborescence


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut Rechercher un fichier dans une arborescence
    Bonjour,

    J'ai un problème concernant la récupération d'un fichier dans une arborescence, je m'explique, j'ai mon arborescence de la façon suivante:

    home > work > tech > tech1,tech2,tech3 et dans chaque répertoire (tech1,tech2 ou tech3) j'ai un fichier tools1.txt pour tech1, tools2.txt pour tech2 et ainsi de suite...
    L'idée est de récupérer le bon fichier en fonction que je choisisse de travailler avec tech1, tech2 ou tech3......J'ai fait le programme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def Techno():
        import glob
        f = glob.glob("/home/work/tech/%(choix)s/*.txt")
        result = open(f % {'choix' : "tech1"}, mode = "r")
    l'idée étant de choisir le fichier à ouvrir en fonction du répertoire dans lequel on veut travailler......mon programme ne marche marche pas sa m'affiche "unsupported operand type(s) for %: 'list' and 'dict'.....s'y vous pouviez m'aidez svp

    merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    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 754
    Par défaut
    Salut,
    En français, vous voulez ouvrir le fichier "tools" correspondant au répertoire "tech" choisi. Si on commence par la fin, çà devrait ressembler à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = open(tools, "r")
    Reste à mettre ce qu'il faut dans la variable tools...
    A partir de la description:
    home > work > tech > tech1,tech2,tech3 et dans chaque répertoire (tech1,tech2 ou tech3) j'ai un fichier tools1.txt pour tech1, tools2.txt pour tech2 et ainsi de suite...
    Vos noms sont 'cablés': (tech1, tools1.txt), (tech2, tools2.txt), (tech3, tools2.txt)...
    Pourquoi passer par glob.glob qui vous retournera une liste de...
    open n'en demande pas tant et vous savez ce que vous voulez.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    alors au départ j'ai défini mon chemin comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fichier = "/home/work/tech/%(lib)s/tools1.txt" 
     
    def ChoixDuFichier():
         choix = "tech1"
         files = open(fichier % {'lib' : choix}, "r")
         print files.read()
    Concrètement se programme fonctionne lorsque j'ai le même motif c'est à dire que le nom du fichier soit tjr le meme dans chaque répertoire sauf que la c'est pas le cas.......J'ai éssayé de faire appel au fichier par extension en utilisant *.txt mais sa ne marche pas....

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    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 754
    Par défaut
    Certes!
    Mais est ce que le pattern:
    - "/home/work/tech/%(lib)s/tools1.txt"
    correspond à ce que vous dites.
    Je verrai plutôt
    - "/home/work/tech/tech%(choix)d/tools%(choix)d.txt"
    ou le nom du répertoire et celui du fichier à ouvrir dépendent du choix me semble plus 'en ligne'.

    Essayez avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pattern = "/home/work/tech/tech%(choix)d/tools%(choix)d.txt" 
    choix = 1
    print pattern % vars()
    Notez que je n'essaie que de traduire ce que vous racontez en code...
    Les réalités sont peut être différentes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    oui c'est ce que j'ai fait mais en fait j'ai oublié de préciser que les fichiers sont plus du type: a_jc.txt(pour tech1), b_fc.txt(pour tech2) et c_th.txt(pour tech3)
    ...j'avais mis tools1.txt ect pour l'exemple dsl.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    et dans ce cas la il n'est plus possible de chercher dans le chemin les fichiers puisqu'il ne correspondent pas à un certain motif

Discussions similaires

  1. Find et Recherche de fichier dans une arborescence
    Par Lolitaaa dans le forum Unix
    Réponses: 1
    Dernier message: 04/03/2011, 12h51
  2. rechercher du texte dans une arborescence de fichier
    Par tibotibo69 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 24/08/2009, 11h47
  3. Compter le nombre de fichiers dans une arborescence
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 22/08/2007, 10h29
  4. Récupération de fichiers dans une arborescence
    Par bibilolo2 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 04/05/2007, 22h19
  5. chercher un fichier dans une arborescence
    Par diamonds dans le forum Entrée/Sortie
    Réponses: 15
    Dernier message: 16/03/2007, 14h27

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