objectif
Lister les modules dans un dossier pour du discovery simple.
code minimal
import pkgutil, tempfile, pathlib, sys
with tempfile.TemporaryDirectory() as tmp:
d = pathlib.Path(tmp)/"plugins"; d.mkdir()
(d/"a.py").write_text("x=1\n", encoding="utf-8")
mods = [m.name for m in pkgutil.iter_modules([str(d)])]
print("a" in mods) # attendu: True
utilisation
import pkgutil, pathlib
path = [str(pathlib.Path(".").resolve())]
names = [m.name for m in pkgutil.iter_modules(path)][:3]
print(isinstance(names, list))
variante(s) utile(s)
import pkgutil
print(callable(pkgutil.iter_modules))
notes
- Combinez avec importlib pour charger dynamiquement ces modules.
- Ne parcourez que des dossiers de confiance (sécurité).