2017-09-14 5 views
-3

Comment puis-je lire plusieurs fichiers txt à partir d'un seul dossier en Python?Comment lire plusieurs fichiers txt à partir d'un seul dossier en Python?

J'ai essayé avec le code suivant mais cela ne fonctionne pas.

import glob 

import errno 

path = '/home/student/Desktop/thesis/ndtvnews/garbage' 

files = glob.glob(path) 

for name in files: 
    try: 
     with open(name) as f: 
      print name 

     for line in f: 
      print line, 

     f.close() 

    except IOError as exc: 
     if exc.errno != errno.EISDIR: 
      raise 
+3

Copie possible de [Comment ouvrir chaque fichier dans un dossier?] (Https://stackoverflow.com/questions/18262293/how-to-open-every-file-in-a-folder) – Chris

+0

Lorsque vous utilisez "with open" fermera automatiquement le fichier pour vous. Donc, f.close() peut vous donner une erreur. En plus de cela, quel genre de sortie/erreur obtenez-vous? – BrandonM

+0

La boucle for devrait être à l'intérieur du bloc with et la ligne 'f.close()' devrait être supprimée. – ekhumoro

Répondre

0

Votre glob n'est pas correct. Vous devez ajouter un /* à la fin de votre chemin pour sélectionner tous les fichiers (ou répertoires) dans votre chemin, puis vérifiez s'ils sont des fichiers avec os.path.isfile. Quelque chose comme:

from os.path import isfile 
files=filter(isfile,glob.glob('%s/*'%path)) 

Vous avez également un problème avec l'ouverture réelle. Lorsque votre instruction with se termine, le fichier est fermé et f n'est plus accessible. Tout ce que vous faites avec le fichier doit être sous l'instruction with. Et vous ne devriez pas le fermer explicitement.

+0

Merci ..Il travaille –