[英]search and extracting values from text using python
给定以下Jtree memory segment
:
print (resptext)
SENT: Ukern command: show jtree 0 memory
Jtree memory segment 0 (Context: 0x45bdc9c8)
-------------------------------------------
Memory Statistics:
16777216 bytes total
7591528 bytes used
9181968 bytes available (9155584 bytes from free pages)
3528 bytes wasted
192 bytes unusable
32768 pages total
14751 pages used (2571 pages used in page alloc)
135 pages partially used
17882 pages free (max contiguous = 17846)
Jtree memory segment 1 (Context: 0x45c5ed20)
Memory Statistics:
16777216 bytes total
13462008 bytes used
3304560 bytes available (3281408 bytes from free pages)
2432 bytes wasted
8216 bytes unusable
32768 pages total
26220 pages used (8970 pages used in page alloc)
139 pages partially used
6409 pages free (max contiguous = 6409)
Context: 0x43bd2958
bytes total
和bytes used
bytes total
resptext = resptext.strip().split('\n')
resptext = [s.strip() for s in resptext]
for line in resptext:
line = line.strip()
if 'bytes used' in line:
words = line.partition(" bytes")
bytes_used = words[0]
print (bytes_used)
我已经设法提取并打印值,但我无法对segment_0 内存利用率和segment_1 进行计算操作
到目前为止的输出:
7591528
13462008
大概可以保持这个简单。 过滤您关心的值的行,然后将内容压缩在一起:
segment_lines = (line for line in resptext if "Jtree memory segment" in line)
used_lines = (line for line in resptext if "bytes used" in line)
avail_lines = (line for line in resptext if "bytes available" in line)
segment_values = (int(line.split(" ")[3]) for line in segment_lines)
used_values = (int(line.split(" ")[0]) for line in used_lines)
avail_values = (int(line.split(" ")[0]) for line in avail_lines)
segment_values = {
segment: {"used": used, "available": avail}
for segment, used, avail in zip(
segment_values, used_values, avail_values
)
}
为什么不使用正则表达式? 更直接! 你可以在这里测试你的正则表达式。 我处理过日志数据,正则表达式有很大帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.