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
Freigeben: 2024-12-04 14:51:10
Original
717 Leute haben es durchsucht

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
Nach dem Login kopieren

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')]
Nach dem Login kopieren

Beispielverwendung:

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

from Foo import *
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage