如何清除文件中的数据并将其放入字典中?

时间:2011-12-21 04:07:55

标签: python python-2.6

我是python的新手并尝试从Linux系统读取/ sys / devices / system / cpu / cpuX / cpufreq / vdd_levels并将其放入字典中。但是我如何摆脱所有的换行符,空格和冒号?

返回的数据看起来像这样(第一个数字是唯一的):

1: 11111
2: 22222
3: 33333

我已经尝试过各种我能想到的方式,但它总是以意大利面条结束。

3 个答案:

答案 0 :(得分:3)

这会将您的数据放入字符串s并将其放入字典d

s = '1: 11111\n2: 22222\n3: 33333'    
d = dict([line.split(': ') for line in s.splitlines()])

答案 1 :(得分:0)

类似的东西:

s = '1: 11111\n2: 22222\n3: 33333'
d = {}
for e in s.split( '\n' ):
    k, v = e.split( ': ' )
    d[ k ] = v
print d

答案 2 :(得分:0)

这个怎么样:

import re
vdd_level_re = re.compile(r'(\d+)\:\s*(\d+)')

vdd_levels = {}
with open('/sys/devices/system/cpu/cpuX/cpufreq/vdd_levels') as vdd_level_file:
    for vdd_level in vdd_level_file:
        level = vdd_level_re.match(vdd_level)
        if level:
            k,v = level.group(1,2)
            vdd_levels[k] = v
        else:
            print "line did not match expected format"
            print vdd_level

这会将k和v保存为字符串。如果要将v转换为整数,请将最后一行更改为:

            vdd_levels[k] = int(v)