在Python中动态地将两个文件导入到另一个文件中,其中这两个文件位于不同的目录中。

6 浏览
0 Comments

在Python中动态地将两个文件导入到另一个文件中,其中这两个文件位于不同的目录中。

在Python 3.3+中,如何导入任意的Python源文件(文件名可以包含任何字符,并且不总是以.py结尾)?

我使用了imp.load_module,代码如下:

>>> import imp
>>> path = '/tmp/a-b.txt'
>>> with open(path, 'U') as f:
...     mod = imp.load_module('a_b', f, path, ('.py', 'U', imp.PY_SOURCE))
...
>>> mod

这在Python 3.3中仍然可行,但根据imp.load_module的文档,它已被弃用:

从版本3.3开始弃用:不需要使用加载器来加载模块,find_module()也已被弃用。

imp模块的文档推荐使用importlib

注意:新的程序应该使用importlib,而不是这个模块。

在Python 3.3+中,没有使用已弃用的imp.load_module函数,加载任意的Python源文件的正确方法是什么?

0