Если я правильно понимаю ваш вопрос, просто используйте importlib .Вкратце, то, что в python вы пишете как:
from package import module as alias_mod
в importlib, становится:
alias_mod = importlib.import_module('module', 'package')
или, эквивалентно:
alias_mod = importlib.import_module('module.package')
, например:
from numpy import random as rm
в importlib:
rm = importlib.import_module('random', 'numpy')
Еще одна интересная вещь - это код, предложенный в этом посте , который позволяет импортировать не только модули и пакеты, но инепосредственно функции и многое другое:
def import_from(module, name):
module = __import__(module, fromlist=[name])
return getattr(module, name)
Для вашего конкретного случая этот код должен работать:
import importlib
n_conf = 3
for in range(1, n_conf)
conf = importlib.import_module('config_file.config_'+str(i))
# todo somethings with conf
Однако, если я могу дать вам несколько советов, я думаю, что лучше всего для вассоздать файл конфигурации json и прочитать файл вместо импорта модулей.Это намного удобнее.Например, в вашем случае вы можете создать файл config.json
, например, так:
{
"config_1": {
"folder": "raw1",
'start_date': '2019-07-01'
},
"config_2": {
'folder': 'raw2',
'start_date': '2019-08-01'
},
"config_3": {
'folder': 'raw3',
'start_date': '2019-09-01'
}
}
Прочитайте файл json следующим образом:
import json
with open('config.json') as json_data_file:
conf = json.load(json_data_file)
Теперь у вас в памяти есть простой питонсловарь с настройками конфигурации, которые вас интересуют:
conf['config_1']
# output: {'folder': 'raw1', 'start_date': '2019-07-01'}