import os from glob import glob import yaml with open("etc/backup.d/backup.yml") as f: config = yaml.load(f) sources = {} for source in config['sources']: for path in glob('etc/backup.d/{}/*.yml'.format(source)): with open(path) as f: if source not in sources: sources[source] = {} sources[source][os.path.basename(path)] = yaml.load(f) config['sources'] = sources print(config)