Chargement de modules à partir d'un répertoire
Lorsque vous traitez une structure de répertoires contenant plusieurs fichiers de module Python, il peut être nécessaire de tous les importer en un seul script. Importer chaque module individuellement peut être fastidieux, surtout s'il existe de nombreux modules dans le répertoire.
Une façon de résoudre ce problème consiste à convertir le répertoire en un package Python. Cependant, le simple ajout d'un fichier __init__.py et l'utilisation de from Foo import * peuvent ne pas donner les résultats souhaités. Pour surmonter cet obstacle, une approche alternative consiste à lister tous les fichiers du module Python dans le répertoire actuel et à stocker leurs noms dans la variable __all__ au sein du fichier __init__.py.
Voici le code qui implémente cette approche :
from os.path import dirname, basename, isfile, join import glob # List all Python module files in the current directory modules = glob.glob(join(dirname(__file__), "*.py")) # Create a list of module names without the ".py" extension __all__ = [basename(f)[:-3] for f in modules if isfile(f) and not f.endswith('__init__.py')]
Cet extrait répertorie d'abord tous les fichiers du module Python dans le répertoire actuel en utilisant glob.glob(join(dirname(__file__), "*.py")). Ensuite, il filtre tous les fichiers non-modules ou le fichier __init__.py. Enfin, il extrait les noms de modules en supprimant l'extension ".py" de chaque nom de fichier. Ces noms de modules sont stockés dans la variable __all__ du fichier __init__.py.
En implémentant cette approche, vous pouvez charger efficacement tous les modules d'un dossier dans un seul script. Il fournit un moyen pratique de gérer plusieurs modules et permet une importation facile à l'aide de la syntaxe from Foo import *.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!