如何从 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)
假设我有第一个 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)