Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengimport Semua Modul dengan Cekap dari Direktori dalam Python?

Bagaimanakah Saya Boleh Mengimport Semua Modul dengan Cekap dari Direktori dalam Python?

Barbara Streisand
Lepaskan: 2024-11-27 21:15:10
asal
515 orang telah melayarinya

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

Memuatkan Semua Modul dalam Folder

Mengimport direktori modul boleh menjadi cara mudah untuk mengurus sejumlah besar modul berkaitan. Walau bagaimanapun, menggunakan piawaian daripada pernyataan boleh mengakibatkan tingkah laku yang tidak dijangka, seperti yang dilihat dalam contoh berikut:

/Foo
    bar.py
    spam.py
    eggs.py
Salin selepas log masuk

Menambah fail __init__.py dan menggunakan daripada Foo import * mungkin tidak menghasilkan hasil yang diingini.

Penyelesaian: Menjana semua Pembolehubah

Untuk memuatkan semua modul dalam folder dengan betul, anda boleh menggunakan kaedah berikut:

  1. Senaraikan semua fail Python (.py) dalam folder.
  2. Buat pembolehubah semua dalam __init__.py.
  3. Isi semua dengan nama asas setiap fail, mengalih keluar sambungan .py.

Berikut ialah kod Python untuk penyelesaian ini:

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')]
Salin selepas log masuk

Penyelesaian ini akan buat senarai nama modul secara dinamik dan tetapkan kepada semua dalam __init__.py. Ini membolehkan anda mengimport semua modul dalam folder dengan hanya menggunakan daripada Foo import *.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengimport Semua Modul dengan Cekap dari Direktori dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan