是否可以从名为uid_2014-10-13.py的模块导入?

时间:2014-10-13 12:20:52

标签: python

我使用python的datetime模块生成面向日期的uid文件。

但我发现我无法从'uid_2014-10-13.py'

导入 似乎python认为这些' - ' 2014-10-13中的minus运算符。

我能以其他方式从该模块导入还是应该重命名?

1 个答案:

答案 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'>