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

Bagaimanakah Saya Boleh Mengimport Semua Modul Secara Dinamik dari Direktori dalam Python?

Barbara Streisand
Lepaskan: 2024-12-04 14:51:10
asal
717 orang telah melayarinya

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

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

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

  1. Dalam __init__.py dalam Direktori Foo, senaraikan semua fail Python (.py) dalam folder semasa.
  2. Gunakan pembolehubah __all__ Python untuk menentukan modul yang akan diimport.
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

Contoh Penggunaan:

Selepas mencipta fail __init__.py, anda kini boleh mengimport semua modul daripada direktori Foo menggunakan:

from Foo import *
Salin selepas log masuk

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!

sumber:php.cn
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