1041 votes

Rechercher tous les fichiers dans le répertoire avec l'extension .txt avec python

Comment puis-je trouver tous les fichiers dans le répertoire avec l'extension .txt en python?

2859voto

ghostdog74 Points 86060

Vous pouvez utiliser glob:

from __future__ import print_function
import glob
import os
os.chdir("/mydir")
for file in glob.glob("*.txt"):
    print(file)

ou tout simplement os.listdir:

from __future__ import print_function
import os
for file in os.listdir("/mydir"):
    if file.endswith(".txt"):
        print(file)

ou si vous voulez parcourir le répertoire:

from __future__ import print_function
import os
for root, dirs, files in os.walk("/mydir"):
    for file in files:
        if file.endswith(".txt"):
             print(os.path.join(root, file))

311voto

Muhammad Alkarouri Points 8463

Utiliser glob.

>>> import glob
>>> glob.glob('./*.txt')
['./outline.txt', './pip-log.txt', './test.txt', './testingvim.txt']

198voto

Adam Byrtek Points 5791

Quelque chose comme ça devrait faire l'affaire

for root, dirs, files in os.walk(directory):
    for file in files:
        if file.endswith('.txt'):
            print file

142voto

Seth Points 18568

Quelque chose comme ceci:

>>> import os
>>> path = '/usr/share/cups/charmaps'
>>> text_files = [f for f in os.listdir(path) if f.endswith('.txt')]
>>> text_files
['euc-cn.txt', 'euc-jp.txt', 'euc-kr.txt', 'euc-tw.txt', ... 'windows-950.txt']

35voto

hughdbrown Points 15770

J'ai comme os.marche():

import os, os.path

for root, dirs, files in os.walk(dir):
    for f in files:
        fullpath = os.path.join(root, f)
        if os.path.splitext(fullpath)[1] == '.txt':
            print fullpath

Ou avec des générateurs:

import os, os.path

fileiter = (os.path.join(root, f)
    for root, _, files in os.walk(dir)
    for f in files)
txtfileiter = (f for f in fileiter if os.path.splitext(f)[1] == '.txt')
for txt in txtfileiter:
    print txt

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