如何从 Python 中的另一个文件动态导入内容

How to dynamically import something from another file in Python

假设我有第一个 python 文件,里面有几个字典:

FeatureBook.py

horse = {"legs": 4,
         "size": "large",
         }
chicken = {"legs": 2,
           "size": "small",
           }

还有第二个脚本,我想在其中根据变量导入这些词典之一。例如我想做这样的事情:

myAnimal = "horse"

from FeatureBook import myAnimal

但这行不通。我知道我可以将整个脚本制作成一个字典,并使用动物名称作为键来获取嵌套的字典。但是我很好奇是否有一种简单的方法可以做到这一点?我一直在四处寻找,但没有找到任何似乎适合这种特定情况的东西。

importlib 会让你进行这种动态导入:

import importlib

feature_book = importlib.import_module("FeatureBook")
myAnimal = "horse"
animal = gettattr(feature_book, myAnimal)
print(animal)