我使用python的datetime模块生成面向日期的uid文件。
但我发现我无法从'uid_2014-10-13.py'
导入 似乎python认为这些' - '2014-10-13
中的minus
运算符。
我能以其他方式从该模块导入还是应该重命名?
答案 0 :(得分:3)
您仍然可以使用importlib.import_module()
导入它:
import importlib
module = importlib.import_module('uid_2014-10-13')
但是,您应该真正生成也是有效Python标识符的模块名称;例如没有破折号。如果您使用了datetime
模块,请考虑使用datetime.date.strftime()
格式化带有下划线的日期。
演示:
>>> open('uid_2014-10-13.py', 'w').write('print "Hello world!"\n')
>>> import importlib
>>> module = importlib.import_module('uid_2014-10-13')
Hello world!
>>> module
<module 'uid_2014-10-13' from 'uid_2014-10-13.py'>