pathlib.Path.rglob
Utilisez pathlib.Path.rglob
vom pathlib
Modul, das in Python 3.5 eingeführt wurde.
from pathlib import Path
for path in Path('src').rglob('*.c'):
print(path.name)
Wenn Sie pathlib nicht verwenden möchten, können Sie glob.glob('**/*.c')
, aber vergessen Sie nicht, die recursive
und verbraucht bei großen Verzeichnissen unangemessen viel Zeit.
Für Fälle, in denen passende Dateien, die mit einem Punkt ( .
); wie Dateien im aktuellen Verzeichnis oder versteckte Dateien auf Unix-basierten Systemen, verwenden Sie die os.walk
Lösung unten.
os.walk
Für ältere Python-Versionen, verwenden Sie os.walk
um ein Verzeichnis rekursiv zu durchsuchen und fnmatch.filter
um mit einem einfachen Ausdruck übereinzustimmen:
import fnmatch
import os
matches = []
for root, dirnames, filenames in os.walk('src'):
for filename in fnmatch.filter(filenames, '*.c'):
matches.append(os.path.join(root, filename))