Python 使用条件导入配置模块
假设我有一个名为config.py的模块,其中包含与我连接的硬件相关的数据,现在我希望使用两个不同的硬件,hw1和hw2。config.py可以访问一个标志,以便它知道我正在使用哪个硬件。我希望将特定的hw1配置数据放在它自己的文件中,对于hw2也是如此 所以我现在有这样的东西:Python 使用条件导入配置模块,python,Python,假设我有一个名为config.py的模块,其中包含与我连接的硬件相关的数据,现在我希望使用两个不同的硬件,hw1和hw2。config.py可以访问一个标志,以便它知道我正在使用哪个硬件。我希望将特定的hw1配置数据放在它自己的文件中,对于hw2也是如此 所以我现在有这样的东西: config.py hw1_config.py hw2_config.py 然后执行条件导入,将其中一个导入config.py if hw = "hw1": from hw1_conifg import *
config.py
hw1_config.py
hw2_config.py
然后执行条件导入,将其中一个导入config.py
if hw = "hw1":
from hw1_conifg import *
elif hw = "hw2":
from hw2_conifg import *
这是一个好方法吗
我是否可以在config.py的名为hw1和hw2的文件夹中创建文件夹,并将hw1_config.py移动到hw1文件夹中,将其重命名为config.py。hw2_config.py也是如此。那么,有条件的导入会是什么样子呢
config.py
/hw1/config.py
/hw2/config.py
我可能还希望将来将config.py分解为例如startup_config.py和shutdown_config.py。同样,这些文件因涉及的硬件而异。在这种情况下,什么是好的文件/文件夹结构
config/startup.py
config/shutdown.py
config/hw1/startup.py
config/hw1/shutdown.py
config/hw2/startup.py
config/hw2/shutdown.py
我认为第一个解决方案看起来不错
if hw = "hw1":
from hw1_config import *
elif hw = "hw2":
from hw2_config import *
如果计划将配置文件移动到单独的文件夹中,则可以在每个文件夹中创建一个文件(hw1/\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy.py
,hw2/\uuuuuuuuuuuuuuuuuuuuuu
if hw = "hw1":
from hw1.config import *
elif hw = "hw2":
from hw2.config import *
至于第三个结构,我认为这一步有点过早-您可以glob
每个目录中的文件名,然后逐个导入它们