Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich alle Module dynamisch aus einem Verzeichnis in Python importieren?

Wie kann ich alle Module dynamisch aus einem Verzeichnis in Python importieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-04 14:51:10733Durchsuche

How Can I Dynamically Import All Modules from a Directory in Python?

Module dynamisch aus einem Verzeichnis laden

Frage:

Module aus einem bestimmten Verzeichnis importieren kann eine Herausforderung sein. Betrachten Sie die folgende Verzeichnisstruktur:

/Foo
    bar.py
    spam.py
    eggs.py

Der Import der Module mit __init__.py und aus Foo import * führt nicht zum gewünschten Ergebnis. Wie kann man alle Module aus diesem Verzeichnis dynamisch importieren?

Antwort:

Erstellen Sie eine init__.py-Datei mit __allVariable

  1. Innerhalb von __init__.py im Foo-Verzeichnis, Liste alle Python-Dateien (.py) im aktuellen Ordner.
  2. Verwenden Sie die Python-Variable __all__, um die zu importierenden Module anzugeben.
from os.path import dirname, basename, isfile, join
import glob
modules = glob.glob(join(dirname(__file__), "*.py"))
__all__ = [ basename(f)[:-3] for f in modules if isfile(f) and not f.endswith('__init__.py')]

Beispielverwendung:

Nachdem Sie die Datei __init__.py erstellt haben, können Sie nun alle Module aus dem Foo-Verzeichnis importieren mit:

from Foo import *

Dadurch werden alle verfügbaren Module im Foo-Verzeichnis dynamisch importiert.

Das obige ist der detaillierte Inhalt vonWie kann ich alle Module dynamisch aus einem Verzeichnis in Python importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn