Memuatkan Modul Secara Dinamik daripada Direktori
Soalan:
Mengimport modul daripada direktori tertentu boleh mencabar. Pertimbangkan struktur direktori berikut:
/Foo bar.py spam.py eggs.py
Mengimport modul menggunakan __init__.py dan dari Foo import * tidak menghasilkan hasil yang diingini. Bagaimanakah seseorang boleh mengimport semua modul daripada direktori ini secara dinamik?
Jawapan:
Buat init__.py Fail dengan __all Pembolehubah
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')]
Contoh Penggunaan:
Selepas mencipta fail __init__.py, anda kini boleh mengimport semua modul daripada direktori Foo menggunakan:
from Foo import *
Ini akan mengimport semua modul yang tersedia secara dinamik dalam direktori Foo.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengimport Semua Modul Secara Dinamik dari Direktori dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!