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 extraire contenu fichiers


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 25
    Par défaut boucle extraire contenu fichiers
    Bonjour,
    J'ai une série de fichiers txt sur lesquels j'ai une série de traitement statistiques à faire. Je voudrais ouvrir les fichiers du type txt dans un répertoire donné puis lire le contenu de ces fichiers. J'ai écrit ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if __name__ == '__main__':
        documentList = []
        for document in os.listdir('path'):
            if os.path.isfile("*.txt") :
                file = open(document,'r').readline()
                documentList.append(file)
    J'arrive à ouvrir uniquement le premier fichier de mon répertoire. Comment puis-je passer aux autres ? j'ai essayé un compteur mais ça ne marche pas non plus....Merci de votre aide.

  2. #2
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Bonjour.

    Ce qui suit devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import os
     
    def listOfTextFiles(path):
        for root, dirs, files in os.walk(path):
            for oneFile in files:
                if oneFile[-4:] == '.txt':
                    path = root + os.sep + oneFile
                    yield path
     
    documentList = []
    for oneFile in listOfTextFiles('path'):
        oneDocument = open(oneFile, 'r').readline()
        documentList.append(oneDocument)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 25
    Par défaut Merci mais...
    Bonjour,
    Merci de votre réponse mais j'obtiens le message suivant :
    SyntaxError: 'yield' outside function

  4. #4
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Bizzare... J'ai testé sous Python 2.6 et Python 3 en copiant-collant le code ci-dessus, et cela fonctionne.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 25
    Par défaut
    Votre code doit être bon en fait. Mais je rencontre un autre problème par rapport à documentList = []
    Mon but est calculer un indice pour chaque mot des textes. Mon code après le vôtre est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    words = {}                
    documentNumber = 0
    for word in documentList[documentNumber].split():
        words[word] = tfidf(word,documentList[documentNumber],documentList)
    Apparremment je ne peux pas faire de split sur une liste python me dit IndexError: list index out of range. Vous savez quelle méthode je peux utiliser à la place du split ?
    Merci de votre aide

  6. #6
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Avant que je me remette au travail, je peux indiquer que open(oneFile, 'r').readlines() renvoie la liste des lignes du fichier.

    Si l'étude doit porter sur tout le fichier, et non ligne par ligne, autant passer par open(oneFile, 'r').read().

Discussions similaires

  1. Boucle extraire information fichier
    Par mycaweb dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 25/01/2012, 09h48
  2. [SP-2007] Extraire des fichiers Excel ou Csv contenu dans une liste sharepoint
    Par stardeus dans le forum SharePoint
    Réponses: 23
    Dernier message: 03/11/2010, 15h11
  3. Extraire contenu texte dans champs objet fichier
    Par marcl1 dans le forum Développement
    Réponses: 7
    Dernier message: 09/06/2009, 22h10
  4. Comment extraire un fichier depuis un CD avec secteurs illisibles ?
    Par Millenod dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 22/01/2005, 12h09
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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