我正在尝试创建一个字典,其中包含基于匹配模式的文本文件。包含key_str
的行应成为键,后续行应成为字典中与这些键关联的值
文件:
ml1
/core
/home
ml2
/var
/home
/lib
cpuml1
/home
/root
/raid
预期产量
my_dict: {ml1: ['/core','/home'], ml2: ['/var','/home','/lib'], cpuml1: ['/home','/root','/raid']}
代码:
d = {}
key_str = "ml"
val_str = ""
key_list = []
val_list = []
with open(homedir+'/backup/file2dict.result') as file2dict:
for line in file2dict:
words=line.split()
for aWord in words:
if key_str in aWord:
key_list.append(aWord)
print(key_list)
else:
val_list.append(aWord)
print("this is formed dictionary", d)
以下是一种方法:
每当遇到新的键时,将现有的val_列表添加到最后一个键并擦除val_列表
假设输入格式正确,每个块之间有双换行符,每个块以一个键名开始,块中的每一行都是该键的值,每个键在文件中是唯一的,并且假设
ml2
键的意思是['/var','/home', '/lib']
,则可以通过理解创建结果:使用多行字符串而不是文件进行测试:
相关问题 更多 >
编程相关推荐