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 :

exclusion de répertoire dans arborescence


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité(e)
    Invité(e)
    Par défaut exclusion de répertoire dans arborescence
    Bonjour,

    j'essaie de parcourir une arborescence et supprimer un répertoire. Hors le nom du répertoire est à plusieurs endroit dans l'arborescence, je dois donc exclure certains répertoires :

    Soit les rép
    a/b/c
    a/test/x/c
    a/build/z/c

    Je souhaite seulement supprimer le rep a/b/c.

    Pour l'instant, j'ai des if dans tous les sens, mais je ne trouve pas cela propre. Pouvez-vous m'aider pour que j'utilise des listes plus propres ??

    Mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for (dirpath, dirnames, filenames) in os.walk(src):        
            for d in dirnames:
                if search_dir in d:
     
                    if 'test' in dirpath:
                        continue
     
                    if 'build' in dirpath:
                        continue
     
                   # delete d
    Merci !

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par DoObS Voir le message
    Bonjour,

    j'essaie de parcourir une arborescence et supprimer un répertoire. Hors le nom du répertoire est à plusieurs endroit dans l'arborescence, je dois donc exclure certains répertoires :

    Soit les rép
    a/b/c
    a/test/x/c
    a/build/z/c

    Je souhaite seulement supprimer le rep a/b/c.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if "a/b/c" in os.getcwd():
        ...
    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
    Invité(e)
    Invité(e)
    Par défaut
    Salut,

    malheureusement, je ne connais pas le path entier. Je connais seulement le nom du répertoire.

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Voilà une solution qui correspond à ce que j'ai compris:

    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
    import os
    def effacerep(rep, repeff):
        nfs = os.listdir(rep)
        for nf in nfs:
            nfc = os.path.join(rep, nf)
            if os.path.isdir(nfc):
                lg1 = len(nfc)
                lg2 = len(repeff)
                if lg1>=lg2 and nfc[lg1-lg2:]==repeff:
                    print "Effacer: ", nfc
                else:
                    effacerep(nfc, repeff)
     
    rep = r"C:\Python26"
    repeff = r"site-packages\win32\test"
    effacerep(rep, repeff)
    Ce qui affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Effacer:  C:\Python26\Lib\site-packages\win32\test
    Dans ce code, il faudra remplacer le "print" par une instruction d'effacement d'une arborescence, comme rmtree du module shutil.

    Tyrtamos

Discussions similaires

  1. effacer un groupe de répertoires dans une arborescence
    Par Gmarin dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 17/10/2013, 11h54
  2. [RegEx] Regexp pour exclusion de répertoire dans Phar
    Par liliwol dans le forum Langage
    Réponses: 7
    Dernier message: 30/01/2012, 10h19
  3. Accès aux modules dans arborescence de répertoires
    Par ledannois dans le forum Général Python
    Réponses: 3
    Dernier message: 23/07/2009, 17h21
  4. Arborescence Répertoire dans combo box
    Par rabobsky dans le forum MFC
    Réponses: 2
    Dernier message: 10/02/2006, 11h55
  5. Réponses: 6
    Dernier message: 08/09/2004, 08h43

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