Memuatkan Modul daripada Direktori
Apabila berurusan dengan struktur direktori yang mengandungi berbilang fail modul Python, anda mungkin perlu mengimport kesemuanya menjadi satu skrip. Mengimport setiap modul secara individu boleh menjadi membosankan, terutamanya jika terdapat banyak modul dalam direktori.
Salah satu cara untuk menangani isu ini ialah dengan menukar direktori kepada pakej Python. Walau bagaimanapun, hanya menambah fail __init__.py dan menggunakan daripada Foo import * mungkin tidak menghasilkan hasil yang diingini. Untuk mengatasi halangan ini, pendekatan alternatif ialah menyenaraikan semua fail modul Python dalam direktori semasa dan menyimpan namanya dalam pembolehubah __all__ dalam fail __init__.py.
Berikut ialah kod yang melaksanakan pendekatan ini:
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')]
Coretan ini mula-mula menyenaraikan semua fail modul Python dalam direktori semasa menggunakan glob.glob(join(dirname(__file__), "*.py")). Kemudian, ia menapis sebarang fail bukan modul atau fail __init__.py. Akhir sekali, ia mengekstrak nama modul dengan mengalih keluar sambungan ".py" daripada setiap nama fail. Nama modul ini disimpan dalam pembolehubah __all__ dalam fail __init__.py.
Dengan melaksanakan pendekatan ini, anda boleh memuatkan semua modul dalam folder ke dalam satu skrip dengan berkesan. Ia menyediakan cara mudah untuk mengurus berbilang modul dan membolehkan pengimportan mudah menggunakan sintaks * import Foo.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengimport Semua Modul Python dengan Cekap dari Direktori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!