我对编程比较陌生,尤其是BASH和python,以及这个站点。抱歉,多个帖子! 我正在试着把这句话译成python。我试过了欧斯波本. 你们还有别的办法吗。我仅限于pythonv2.6版本,无法升级到新版本,否则我将知道如何在3.6版本中完成。 谢谢!你知道吗
sample1=($(/bin/cat /proc/meminfo | egrep 'MemTotal|MemFree|Cached|SwapTotal|SwapFree|AnonPages|Dirty|Writeback|PageTables|HugePages_' | awk ' { print $2} ' | pr -t -T --columns=15 --width=240))
这是我在python中所拥有的,但它不起作用。任何人都不知道如何重新排列它,使之与BASH中的行相同。 我知道这些不应该是elif。老实说,我被难住了,不知道该怎么办。你知道吗
lst = [] #
inFile = open('/proc/meminfo') # open file
line = inFile.readline()
sample1 = {} #
while(line): #
if line.find('MemTotal'):
line = line.split()
sample1['MemTotal'] = line[1]
elif line.find('MemFree'):
line = line.split()
sample1['MemFree'] = line[1]
elif line.find(line, 'Cached'):
line = line.split()
sample1['Cached'] = line[1]
elif line.find(line, 'SwapTotal'):
line = line.split()
sample1['SwapTotal'] = line[1]
elif line.find(line, 'SwapFree'):
line = line.split()
sample1['SwapFree'] = line[1]
elif line.find(line, 'AnonPages'):
line = line.split()
sample1['AnonPages'] = line[1]
elif line.find(line, 'Dirty'):
line = line.split()
sample1['Dirty'] = line[1]
elif line.find(line, 'Writeback'):
line = line.split()
sample1['WriteBack'] = line[1]
elif line.find(line, 'PageTables'):
line = line.split()
sample1['PageTables'] = line[1]
elif line.find(line, 'HugePages_'):
line = line.split()
sample1['HugePages'] = line[1]
这应该通过管道将输出通过subprocess.Popen从python运行bash命令,并适用于python2.6:
我的系统的输出是:
也可以使用python打开文件,并将文件对象传递给第一个进程:
纯python解决方案,使用
str.find
模拟egrep查找包含文件中pre的任何子字符串的行,并使用str.rsplit
获取第二列,即数字:输出:
在上面的代码中使用any将对匹配项进行延迟求值和短路,如果没有匹配项,它将求值为False,因此不会添加任何内容。你知道吗
我们可以使用re.search编译模式/子字符串来检查:
输出:
python作为python,我们可以将所有逻辑放在一个列表comp中以获得数据:
输出:
大概是这样的:
我不确定我得到了理想的标签清单完全正确-请随时修改这些必要的。你知道吗
这将提供相同的输出,但使用内置的Python特性,而不是对所有内容进行炮轰:
相关问题 更多 >
编程相关推荐