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 :

Boucler sur plusieurs dossiers [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut Boucler sur plusieurs dossiers
    Bonjour,

    Voila je souhaite récupérer le nom de chaques dossiers (plusieurs centaines) présent dans un seul dossier pour ensuite écrire dans un fichier .txt le nom des dossiers présents.

    Habituellement je boucle sur des fichiers et j'utilise ce bout de code qui fonctionne très bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import glob
    ext="*.jpg"
    for files in glob.glob(ext):
        print files
    Sauf que là pour les dossiers il n'existe pas d'extensions. Du coup je ne trouve pas comment faire.

    Un coup de pouce ?

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Je viens de trouver ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import os
    path='C:\Developement\Python'
    subdirectories=os.listdir(path)
    print subdirectories
    Cela fonctionne mais il me créé une liste pour subdirectories. Pas très pratique pour moi car je vais devoir faire une boucle sur chaque éléments de la liste pour pouvoir les écrire dans mon fichier texte ensuite.

    Ni aurait il pas une autre solution mais dans le même genre que le code cité plus haut avec une boucle for?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import glob
    ext="*.jpg"
    for files in glob.glob(ext):
        print files

  3. #3
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Salut,

    Citation Envoyé par nekcorp Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import os
    path='C:\Developement\Python'
    subdirectories=os.listdir(path)
    print subdirectories
    Cela fonctionne mais il me créé une liste pour subdirectories
    Ben oui. Tout comme "glob.glob(ext)" !!!

    Citation Envoyé par nekcorp Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import glob
    ext="*.jpg"
    for files in glob.glob(ext):
        print files

    Seulement, là, tu fais l'effort de boucler sur la dite liste.

    De plus, ce que tu as trouvé "marche" uniquement parce que tu n'as que des (sous-)répertoires dans le répertoire listé. C'est un coup de bol. os.listdir te ramène tous les fichiers contenus.

    Va plutôt voir os.path.isdir pour rester plus général.

  4. #4
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Bah oui, en fait ça reviendrait à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import os
    path='C:\Developement\Python'
    for folders in os.listdir(path):
         print folders
    Pour en revenir au coup de bol, et bien normalement il ne peux pas y avoir de sous répertoires dans mes dossiers que je veux lister. Donc normalement je ne devrais pas rencontrer de soucis.

    je vais voir pour os.path.isdir ce que raconte la doc.

    Merci

  5. #5
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut
    Notez aussi l'existence de os.walk qui peut s'avérer fort utile.

  6. #6
    Candidat au Club
    Homme Profil pro
    mécanicien
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : mécanicien

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Par défaut
    Pourquoi pas tout simplement comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import os
    path='C:\Developement\Python'
    for fichier os.listdir(path):
        # Si c'est un dossier 
        if os.path.isdir(fichier) == True:
            print fichier

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

Discussions similaires

  1. [USB] Copier un dossier sur plusieurs clés USB
    Par jontleman dans le forum Composants
    Réponses: 17
    Dernier message: 23/06/2019, 20h07
  2. Réponses: 5
    Dernier message: 19/05/2015, 01h38
  3. Boucler sur plusieurs colonnes
    Par j0joo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/01/2015, 14h21
  4. [AppleScript] Boucler sur plusieurs dossiers
    Par nekcorp dans le forum AppleScript
    Réponses: 1
    Dernier message: 26/08/2014, 07h21
  5. Diaporama simple sur plusieurs dossiers
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/12/2010, 23h09

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