ホームページ >バックエンド開発 >Python チュートリアル >すべての Python モジュールをディレクトリから効率的にインポートするにはどうすればよいですか?

すべての Python モジュールをディレクトリから効率的にインポートするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-28 05:54:14355ブラウズ

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

ディレクトリからモジュールをロードする

複数の Python モジュール ファイルを含むディレクトリ構造を扱う場合、それらすべてをインポートする必要がある場合があります。単一のスクリプトにまとめられます。各モジュールを個別にインポートするのは、特にディレクトリ内に多数のモジュールがある場合には面倒な作業になる可能性があります。

この問題に対処する 1 つの方法は、ディレクトリを Python パッケージに変換することです。ただし、単に __init__.py ファイルを追加して from Foo import * を使用しても、望ましい結果が得られない場合があります。この障害を克服するための別のアプローチは、現在のディレクトリ内のすべての Python モジュール ファイルをリストし、その名前を __init__.py ファイル内の __all__ 変数に保存することです。

このアプローチを実装するコードは次のとおりです。

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')]

このスニペットは、まず glob.glob(join(dirname(__file__), "*.py"))。次に、モジュール以外のファイルまたは __init__.py ファイルをフィルターで除外します。最後に、各ファイル名から「.py」拡張子を削除してモジュール名を抽出します。これらのモジュール名は、__init__.py ファイル内の __all__ 変数に保存されます。

このアプローチを実装すると、フォルダー内のすべてのモジュールを単一のスクリプトに効果的にロードできます。これは複数のモジュールを管理する便利な方法を提供し、from Foo import * 構文を使用して簡単にインポートできるようにします。

以上がすべての Python モジュールをディレクトリから効率的にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。