リストを反転し、結果をネストします。
result = {}
with open('directory file txt',r) as f:
for line in f:
keys = line.strip().split('.')
value = keys[-1]
for key in reversed(keys[1:-1]):
value = {key: value}
result[keys[0]] = value
これは、「上位」に複製されたキーをそれほどうまく処理しません。キーが重複している場合は、もう少し面倒な設定を使用する必要があります(defaultdict()
状況をうまく処理できないと思います)。
result = {}
with open('directory file txt',r) as f:
for line in f:
keys = line.strip().split('.')
current = result
for key in keys[:-2]:
current = current.setdefault(key, {})
current[keys[-2]] = keys[-1]