objectif
Lister des fichiers avec motifs, y compris ** récursif (Python 3.5+).
code minimal
import glob, tempfile, pathlib
with tempfile.TemporaryDirectory() as tmp:
root = pathlib.Path(tmp); (root/"d").mkdir(); (root/"d"/"f.txt").write_text("x", encoding="utf-8")
files = list(glob.iglob(str(root/"**"/"*.txt"), recursive=True))
print(any(f.endswith("f.txt") for f in files)) # attendu: True
utilisation
import glob, tempfile, pathlib
with tempfile.TemporaryDirectory() as tmp:
root = pathlib.Path(tmp); (root/"a.py").write_text("x"); (root/"b.txt").write_text("y")
print(sorted(glob.glob(str(root/"*.py")))[0].endswith(".py"))
variante(s) utile(s)
import glob
print(isinstance(list(glob.iglob("**/*.py", recursive=True)), list))
notes
- iglob renvoie un itérateur paresseux; préférez-le pour de gros arbres.
- Les motifs respectent les règles de glob Unix (pas de regex).