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 :

Boucle for avec plusieurs variables et tableau ? [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de marcoxavier
    Homme Profil pro
    ADMINISTRATEUR SYSTEME UNIX
    Inscrit en
    Mai 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : ADMINISTRATEUR SYSTEME UNIX

    Informations forums :
    Inscription : Mai 2015
    Messages : 72
    Par défaut Boucle for avec plusieurs variables et tableau ?
    Bonjour, j'ai actuellement un bout de code qui me permet de trouver le chemin des fichiers qui se trouvent dans un répertoire, le voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    repScan = 'Fichiers'
    for dossier, ss_doss, listFic in os.walk(repScan):
        print(dossier, ss_doss, listFic)
        m = dossier
        for e in ss_doss:
            print(m + "\\" + e)
    ss_doss et listFic sont des tableaux, j'aimerais savoir si c'est possible et comment faire quelque chose du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        for e,i in ss_doss, listFic:
            print(m + "\\" + e + "\\" + i)
    Pour pouvoir exploiter tous les tableaux dans le même print.

    Concretement, ca me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Fichiers\image
    Fichiers\Iso
    et j'aimerais que ca me retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Fichiers\image\le_contenu_du_tableau_listFic
    Fichiers\Iso\le_contenu_du_tableau_listFic
    Voilà, en esperant que vous ayez compris ce que je souhaite faire, et je reste pas loin si vous avez besoin de plus de détails, merci d'avance !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Techniquement, ce ne sont pas des tableaux mais des listes (c'est important car çà ne fonctionne pas vraiment comme un tableau). Ensuite, dans for dossier, ss_doss, listFic in os.walk(repScan):, listFic est l'ensemble des fichiers contenus dans "dossier", alors que "ss_doss" est l'ensemble des s/dossier contenu dans "dossier".
    Donc pour juste avoir le nom des fichiers, il suffit d'ignorer "ss_doss" et de concaténer les différents "dossier" avec chacun des éléments des listes "listFic" correspondants.
    Et si vous ne comprenez pas ce que je dis, fabriquez un répertoire avec dedans 2/3 sous répertoires et quelques fichiers puis regardez ce que retourne os.walk: c'est plus facile de réfléchir en regardant quelques lignes plutôt que des centaines. Vous pouvez aussi lire la documentation d' os.walk .

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

  3. #3
    Membre confirmé Avatar de marcoxavier
    Homme Profil pro
    ADMINISTRATEUR SYSTEME UNIX
    Inscrit en
    Mai 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : ADMINISTRATEUR SYSTEME UNIX

    Informations forums :
    Inscription : Mai 2015
    Messages : 72
    Par défaut
    je n'ai pas tout compris, et listFic me retourne seulement les fichiers mais sans le chemin entier, oui, vous me dites de concaténer manuellement le chemin avec les dossier?
    os.walk: me retourne ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Fichiers ['image', 'Iso'] ['Informationstte.png']
    Fichiers\image [] ['InformationsRH.png']
    Fichiers\Iso [] ['debian-8.7.1-amd64-CD-1.iso']
    C'est ça dont vous parlez?

    Moi je souhaite ceci :

    Fichiers ['image', 'Iso'] ['Informationstte.png'] sans les [ et ' mais avec des \ quoi. (Fichiers\Iso\Informationstte.png) Bon la j'ai choisi le ss dossier Iso mais ca aurait pu être image

    J'ai pas tout compris à ce que vous me dites, je ne cherche pas a avoir la solution toute faite, je veux bien chercher mais j'ai pas tout compris :/

    EDIT : Eclair de génie, j'ai compris ! Merci bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for dossier, ss_doss, listFic in os.walk(repScan):
        print(dossier, ss_doss, listFic)
        m = dossier
        for e in listFic:
            print(m + "\\" + e)
    Fallais juste chercher dans listFic c'est bien ça?

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

Discussions similaires

  1. Boucle for appelant plusieurs variables
    Par charleslaidi dans le forum Shell et commandes GNU
    Réponses: 23
    Dernier message: 05/05/2015, 22h51
  2. Réponses: 9
    Dernier message: 17/07/2013, 10h06
  3. Réponses: 2
    Dernier message: 14/04/2010, 18h39
  4. Boucle for avec SELECT et variable indicée
    Par hisin dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2009, 11h53
  5. Boucle for avec 2 variables
    Par radzar dans le forum PL/SQL
    Réponses: 8
    Dernier message: 15/05/2009, 12h07

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