Skip to main content
 首页 » 编程设计

Python理解巩固

2025年05月04日14zhengyun_ustc

我觉得必须有一种更简单(更干净)的方法来使用理解来解析 linux 上的 meminfo 文件。文件格式为:

MemTotal:        3045588 kB 
MemFree:         1167060 kB 
Buffers:          336752 kB 
Cached:           721980 kB 
SwapCached:            0 kB 
Active:           843592 kB 
Inactive:         752920 kB 
Active(anon):     539968 kB 
Inactive(anon):   134472 kB 

我试图重写 for 循环 id 用于理解并发现我需要其中的 3 个......

def parse_mem_file(memfile = '/proc/meminfo'): 
    lines = open(memfile, 'r').readlines() 
    lines = [line.strip('kB\n') for line in lines if line[-3:] == 'kB\n'] 
    lines = [line.split(':') for line in lines] 
    return dict((key, int(value)) for (key, value) in lines) 
 
print parse_mem_file() 

我做错了什么?有没有合理的方法来简化这个?

请您参考如下方法:

d = {} 
with open(f) as fin: 
    for l in fin: 
        x = l.split() 
        d[x[0][:-1]] = int(x[1]) 
return d