如何从txt文件创建python词典?

2024-09-28 23:40:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件是这样的:

NODE=SC-1,CPU=90
NODE=SC-1,MEM=10
NODE=SC-1,FS=80
NODE=SC-1,DIORead=30
NODE=SC-1,DIOWrite=40
NODE=SC-1,NTX=30
NODE=SC-1,NRX=40
NODE=SC-2,CPU=80
NODE=SC-2,MEM=10
NODE=SC-2,FS=80
NODE=SC-2,DIORead=30
NODE=SC-2,DIOWrite=40
NODE=SC-2,NTX=30
NODE=SC-2,NRX=40

如何解析文件并为节点SC-1和节点SC-2创建一个字典,以便在以后的程序中引用这些字典以获取特定节点的特定值?在


Tags: 文件程序node字典节点cpumemfs
3条回答

以下是我的尝试(未经测试):

sc1 = {}    
sc2 = {}    
f = open("myfile", "r")
for line in f:  
  dict = None
  for statement in line.split(','):
    varname, value = statement.split('=')
    if varname == 'NODE' and value == 'SC-1':
      dict = sc1
    elif varname == 'NODE' and value == 'SC-2':
      dict = sc2
    else:
      dict[varname] = value
from collections import defaultdict
d = defaultdict(dict)
for line in open('input_file','r'):
    line = line.strip()
    a,b = line.split(',')
    node = a.split('=')[1] 
    key, value = b.split('=')
    d[node][key] = value

我相信您希望解析这个文件,并将所有SC-*保留为键,其余内容作为它们的值。如果关键点是重复的,则合并这些值。如果这就是你要找的,那么我已经手工编写了一些代码-

我首先在,上拆分行,然后在=上拆分该行,如果键已经存在,则merge else创建一个新条目。在

def readFileIntoDict(fileHandle, dictName):
     line = fileHandle.readline() 
     dictName = {} 

     while line: 
         key  = line.split(',').split('=')[1]
         if key in dictName:
             dictName[key].append(line)
         else:
             dictName[key] = [line]
         line = fileHandle.readline() 
     return dictName

如果我理解了你想要的,请纠正我。在

相关问题 更多 >