216 votes

Comment ouvrir tous les fichiers d'un dossier

J'ai un python script parse.py, qui dans le script ouvre un fichier, disons file1, et ensuite fait quelque chose peut-être imprimer le nombre total de caractères.

filename = 'file1'
f = open(filename, 'r')
content = f.read()
print filename, len(content)

Pour l'instant, j'utilise stdout pour diriger le résultat vers mon fichier de sortie - output

python parse.py >> output

Cependant, je ne veux pas faire cela fichier par fichier manuellement, y a-t-il un moyen de s'occuper de chaque fichier automatiquement ? Comme

ls | awk '{print}' | python parse.py >> output 

Le problème est alors de savoir comment lire le nom du fichier à partir de standardin. Ou bien il y a déjà des fonctions intégrées pour faire le ls et ce genre de travail facilement ?

Gracias.

1voto

SKhendle Points 31

Le code ci-dessous lit tous les fichiers texte disponibles dans le répertoire qui contient le script que nous exécutons. Ensuite, il ouvre chaque fichier texte et stocke les mots de la ligne de texte dans une liste. Après avoir stocké les mots, nous imprimons chaque mot ligne par ligne.

import os, fnmatch

listOfFiles = os.listdir('.')
pattern = "*.txt"
store = []
for entry in listOfFiles:
    if fnmatch.fnmatch(entry, pattern):
        _fileName = open(entry,"r")
        if _fileName.mode == "r":
            content = _fileName.read()
            contentList = content.split(" ")
            for i in contentList:
                if i != '\n' and i != "\r\n":
                    store.append(i)

for i in store:
    print(i)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X