ホームページ >バックエンド開発 >Python チュートリアル >すべての Python モジュールをディレクトリから効率的にインポートするにはどうすればよいですか?
ディレクトリからモジュールをロードする
複数の 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 サイトの他の関連記事を参照してください。