我想根据从文本文件中提取的数据字符串创建字典。它已经是字典的格式,但它是一个字符串。如何将此数据传输到字典?
程序:
f = open('output.txt')
a = f.readlines()
b = [l.strip('\n') for l in a]
print b
数据:
['12v: 12.1968', '3.3v: 3.312', '5v: 5.04', 'CPU Temp: 33', 'Disk1 Mounted: 1', 'Disk1 Used Space: 32', 'Disk2 Mounted: 1', 'Disk2 Used Space: 0', 'Fan speed: 3245', 'Motherboard Temp: 30', 'VCore: 1.352']
我需要在程序中添加什么内容?
答案 0 :(得分:0)
您可以使用简单的代码(尽管不紧凑)
my_dict = {}
for element in b:
k,v = element.split(":")
my_dict[k] = v
my_dict
{'12v': ' 12.1968',
'3.3v': ' 3.312',
'5v': ' 5.04',
'CPU Temp': ' 33',
'Disk1 Mounted': ' 1',
'Disk1 Used Space': ' 32',
'Disk2 Mounted': ' 1',
'Disk2 Used Space ': ' 0',
'Fan speed': ' 3245',
'Motherboard Temp': ' 30',
'VCore': ' 1.352'}
答案 1 :(得分:0)
您的文件内容不是python词典格式。 Disk 2 Used Space 0
中也没有冒号。如果你把冒号放在那里,那么可以创建python字典
d = {}
for pair in eval(b):
key, value = pair.split(':')
d[key] = value.strip()
print d
或
d = dict([(x.split(':')) for x in eval(b)])
答案 2 :(得分:0)
简单易懂:
f = open('output.txt')
a = f.readlines()
b = [l.strip('\n') for l in a]
my_dict = dict( [(line.split(":")) for line in b])
假设每个条目都包含一个':' (结肠)
答案 3 :(得分:0)
如果我理解你要做的事情,以下内容应该有效:
f = open("myfile")
dict = {}
fsplit = ""
flines = f.split("\n")
for i in range(len(flines)):
fsplit = flines[i].split(":")
dict[fsplit[0] = fsplit[1]
发生的事情是它将每一行拆分成flines,然后循环遍历所有行并创建一个临时变量,该变量保存一个列表,其中包含用冒号分隔的字符串。之后,它只是将2个单词添加到字典中。
您的文件应该如下所示,它应该有效:
myword : hello
mynextword : bye
mythirdword : this should work