pythonはファイル名にハイフンをつけることは推奨していない. というかハイフンがあるファイルをモジュールとしてimportしようとするとシンタックスエラーになる.
しかし,やんごとなき理由でどうしてもハイフンのつくファイルをimportしたい時もあるかもしれない.
そういう時はimportlib.import_module
を使うと読み込める.
importlib.import_module
はpython2.7/3系で使える.
example1
例えばmain.py
から同じディレクトリにあるhoge-module.py
をモジュールとしてimportしたい時,
.
├── hoge-module.py
└── main.py
以下のように読み込むことができる.
main.py
import importlib
hoge_module = importlib.import_module("hoge-module")
hoge_module.test_func()
example2
また,例えばhoge-module.py
がディレクトリの下にある時,
.
├── main.py
└── module1
├── __init__.py
└── hoge-module.
__init__.py
の中に以下のように書く.
import importlib
hoge_module = importlib.import_module(".hoge-module", "module1")
そしてmain.py
から
以下のように読み込める.
from module1 import hoge_module
hoge_module.test_func()
どうしてもファイル名がハイフンじゃなきゃダメなんだ!!!って時だけ使うこと.