我是python的新手,試圖從Linux系統讀取/ sys/devices/system/cpu/cpuX/cpufreq/vdd_levels,並將其讀入字典。但是,我如何擺脫所有的換行符,空格和冒號?如何清理文件中的數據並將其存入字典中?
返回的數據看起來像這樣(第一個數字是唯一的):
1: 11111
2: 22222
3: 33333
我已經在各方面都試過我能想到的,但它總是在麪條中結束。
我是python的新手,試圖從Linux系統讀取/ sys/devices/system/cpu/cpuX/cpufreq/vdd_levels,並將其讀入字典。但是,我如何擺脫所有的換行符,空格和冒號?如何清理文件中的數據並將其存入字典中?
返回的數據看起來像這樣(第一個數字是唯一的):
1: 11111
2: 22222
3: 33333
我已經在各方面都試過我能想到的,但它總是在麪條中結束。
如何:
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)
這需要在字符串s
您的數據,並把它變成一本字典,d
。
s = '1: 11111\n2: 22222\n3: 33333'
d = dict([line.split(': ') for line in s.splitlines()])
你究竟試過了什麼? – 2011-12-21 04:10:42
你應該重新考慮你的筆名會如何影響人們認真對待你的問題的機會? – 2011-12-21 10:31:25
是的,當我輸入名字時,我沒有想太多。不幸的是,我不能在接下來的30天內改變它。 – Troll 2011-12-22 01:24:23