python以编程方式从不同的文件夹导入相同的文件名

python以编程方式从不同的文件夹导入相同的文件名,python,Python,我有以下结构 sites - SiteA - Settings.py - SiteA - Settings.py - SiteA - Settings.py 所有settings.py文件都有一个变量 域\u密钥= 是否有一种方法可以通过编程导入此结构,并在所有设置文件中查看此变量并打印它 编辑更新的代码: 导入工作不正常,我不确定如何在不知道文件夹名称的情况下导入设置文件。如果没有重复的文件名,您可以访问这些模块及其变量,如下所示: import Sit

我有以下结构

sites 
  - SiteA
    - Settings.py
  - SiteA
    - Settings.py
  - SiteA
    - Settings.py
所有settings.py文件都有一个变量

域\u密钥=

是否有一种方法可以通过编程导入此结构,并在所有设置文件中查看此变量并打印它

编辑更新的代码:


导入工作不正常,我不确定如何在不知道文件夹名称的情况下导入设置文件。

如果没有重复的文件名,您可以访问这些模块及其变量,如下所示:

import SiteA.Settings as A, SiteB.Settings as B, SiteC.Settings as C
print(A.DOMAIN_KEY, B.DOMAIN_KEY, C.DOMAIN_KEY)
编辑:另一个选项是_import__)语句,它允许您加载具有其名称的模块:

for char in "ABC":
    mod = __import__("Site%c.Settings")
    print(mod.DOMAIN_KEY)
编辑2:根据OP中的编辑

为什么不将设置模块名称附加到从脚本获得的文件夹之后呢

for file in output.split():
    __module = __import__('%s.Settings' % file)
    print __module.Settings.DOMAIN_KEY

SiteA是目录名吗?他们真的应该有不同的名字吗?您正在运行的脚本的位置是什么?siteA是一个包含init.py文件的python目录。脚本将从主目录站点运行。如果是前者,他还必须在每个目录中添加一个_init__uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,或者使用mod.Settings.DOMAIN_KEY而不是mod.DOMAIN_KEY。这对我不起作用,因为我不知道文件夹名称。我用我试图使用的代码更新了帖子
for file in output.split():
    __module = __import__('%s.Settings' % file)
    print __module.Settings.DOMAIN_KEY