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 :

Supprimer un fichier dans un répertoire


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut Supprimer un fichier dans un répertoire
    Bonjour à tous,

    Je souhaite supprimer des fichiers ne contenant pas la chaîne de caractère BDD et je n'arrive pas à ne choisir que ces fichiers pour la suppression je pensais utiliser la fonction os.remose()

    Merci

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Points : 257
    Points
    257
    Par défaut
    Bonjour,

    Je n'ai pas compris quel était votre probleme... Je reformule pour etre sur : vous avez plein de fichiers et ceux qui n'ont pas un nom qui comporte BDD vous désirez les supprimers, c'est bien sa ?

    Si oui : http://python.developpez.com/faq/?page=String

    PArmis cette doc j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    fichier = 'fichierBDDkudhe.txt'
    nombre = fichier.count('BDD')
    if nombre == 0:
        os.remove(fichier)
    J'espere vous avoir aidé...

    Mickael

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    SUPER ça marche tip top

    Voici mon code final

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # suppression des fichier
    listeFichiers = glob.glob(dirdest+'*.*')
    for fichier in listeFichiers :
        nombre = fichier.count('BDD')
        if nombre == 0:
           os.remove(fichier)
    Merci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Remarques.

    glob permet de "filtrer" les fichiers qui "matchent" le pattern qu'on lui passe. Ca utilise listdir et fnmatch.

    Comme ici vous récupérez l'ensemble des fichiers du répertoire "dirtest", os.listdir est largement suffisant.

    Vous ne souhaitez pas compter le nombre d'occurrences de 'BDD' dans le fichier mais sélectionner ceux dont le nom ne contient pas... Ce qui traduit en Python s'exprime if 'BDD' not in name...

    Je ne sais pas ce que vaut dirtest ni quel était le répertoire par défaut lorsque vous avez testé, mais listdir retourne les noms des fichiers dans path et si vous omettez de le préciser pour le remove, vous allez avoir des surprises.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # suppression des fichier
    for fichier in os.listdir(dirdest):
        if 'BDD' in fichier: 
            os.remove(os.path.join(dirtest,fichier))
    Comme je suppose que vous êtes en train de nettoyer les fichiers convertis de vos précédents posts, pourquoi ne pas le faire en sortie de la boucle de traitement?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    Merci pour ta réponse wiztricks, mais en fait je veux supprimer les fichiers ne contenant pas BDD

    voici le code adapté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # suppression des fichiers
    for fichier in os.listdir(dirdest):
        if not 'BDD' in fichier:
            os.remove(os.path.join(dirdest,fichier))
    Merci

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

Discussions similaires

  1. Supprimer des fichiers dans un répertoire
    Par Gnux dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 08/05/2012, 08h49
  2. [Batch] Supprimer des fichiers dans un répertoire
    Par Fabdeuche dans le forum Scripts/Batch
    Réponses: 15
    Dernier message: 27/10/2009, 13h41
  3. Gestion de fichiers dans un répertoire
    Par rossy dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/11/2005, 15h38
  4. rechercher d'un nom de fichier dans un répertoire
    Par yerome dans le forum Langage
    Réponses: 7
    Dernier message: 21/07/2005, 11h54
  5. Réponses: 4
    Dernier message: 22/12/2003, 11h12

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