はじめに
Pythonスクリプトのimportでファイル名関係でエラーが出たのでメモ
問題
例として以下のファイルをimportしたいとします。
def test():
a = 'test'
return a
〇〇.pyである時、普通ならば単に
import 〇〇
とすれば良いです。しかしファイル名が
①"-"(ハイフン)を含む
②数字から始まる
のいずれかを満たすと「SyntaxError: invalid syntax」と出ます。
解決策
今回、例として0a-a.pyを呼び出します。
module = __import__('0a-a')
print(module.test()) #test
__import__()を使ってスクリプトを呼び出します。これはimport 0a-a as moduleと同じように扱うことが可能です。
さいごに
本来、このような手法を使わなくても良いようにファイル名には気を付けましょう。どうしてもハイフンが含まれているファイル名を使わなければならない時にのみ使うようにした方が良さそうです。