ディレクトリ配下のすべてのファイルをimportする
Pythonであるフォルダにすべてのファイルをimportする方法
Pythonでは別のスクリプト (例: mod_a.py)をimport mod_aなどとして利用することが出来ますが、例えばpackage_a/ディレクトリにあるファイルをすべて読み込もうと from package_a import *としても読み込むことはできません。
この場合__init__.pyファイルを準備する必要があります。例えば以下のようなファイル構成を考えます
/
main.py
package_a/
__init__.py
mod_a.py
mod_b.py
main.py から from package_a import *として読み込むためには、__init__.pyの中で__all__という変数に、*で読み込むモジュール名を設定します。
__all__ = ['mod_a', 'mod_b']
また、すべてのファイルを読み込みたいときはos.listdir()を使用して
import os
__all__ = [k[0:-3] for k in filter(lambda x: x[0] != "_",
os.listdir(os.path.dirname(__file__)))]
のように設定します。この時__init__.py自身や自動で生成される__pycache__を含めないように、最初の文字が_の文字列をfilter()を用いて除外しています。k[0:-3]はファイ名の.pyを削除するためです

最近のコメント