python importlib从错误的目录导入

时间:2020-02-26 16:43:30

标签: python for-loop python-importlib

我正在尝试从不同的python文件(* .py)中导入名为“任务”的字典。

路径存储在我的数组directories['code']中。并非所有文件都包含以下任务字典之一。

问题是,一旦找到包含字典的文件,则将'foo'设置为该字典,但不会重置,即使下一个文件没有字典也是如此

但是,一旦找到另一个包含新字典的文件,将再次正确分配'foo'。

我想知道这是否是因为importlib正在搜索整棵树,而不仅仅是搜索确切的路径吗?

当然,我该如何解决?

import importlib

for i in range(len(directories['code'])):

    try:
        foo = importlib.machinery.SourceFileLoader('file', directories['code'][i]).load_module().tasks

    except:
        foo = '0'
        pass

    print(foo)

1 个答案:

答案 0 :(得分:0)

您的代码有效,在某个地方出了点问题– directories['code'][i],-因此请尝试使用i

for i in ['test/__init__.py', 'test/__init__2.py']:
    try:
        foo = importlib.machinery.SourceFileLoader('file', i).load_module().__version__
    except:
        foo = 0
    print(i, foo)

# test/__init__.py 1.0.0
# test/__init__2.py 0