【问题标题】:How to dynamically import something from another file in Python如何从 Python 中的另一个文件动态导入某些内容
【发布时间】:2026-02-01 20:50:01
【问题描述】:

假设我有一个带有几个 dicts 的第一个 python 文件:

FeatureBook.py

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

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

myAnimal = "horse"

from FeatureBook import myAnimal

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

【问题讨论】:

  • 但是myAnimal 在文件中的什么位置?此外,除非small 是变量,否则"size": 'small' 'small' 应该用引号引起来
  • 你好 Sujay,感谢固定字符串,但这是我的意思,我试图根据参数从 FeatureBook.py 动态导入。
  • 我很确定进行这样的导入是编程混乱的标志。

标签: python python-3.x import python-import


【解决方案1】:

importlib 会让你做这种动态导入:

import importlib

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

【讨论】:

  • 问题“FeatureBook”中的 Tbh 不是变量,因此您可以简单地执行 import FeatureBook 而不是 feature_book = importlib.import_module("FeatureBook")
  • 谢谢@Seon!这正是我想要的。
最近更新 更多