首页 > 解决方案 > 从 Python3 中的字符串中获取某些文本

问题描述

我目前开始在 Python 中编写更多脚本,并且可以使用一些帮助!我有一个从服务器返回一些统计信息的函数。目前我的功能:

def get_free_memory(ssh_obj):
stdin, stdout, stderr = ssh_obj.exec_command('free -h')
mem_stats = stdout.readlines()[1]
mem_stats_formatted = " ".join(mem_stats.split())
return mem_stats_formatted

返回

Mem: 991M 71M 757M 12M 162M 751M

我想进一步解析此输出中的有用信息并获取总内存(991M)和可用内存(757M)。最好的方法是什么?

同样返回两者或具有两个单独的功能会更好。一个叫get_free_memory 和get_available_memory?

谢谢!

标签: pythonpython-3.xparamiko

解决方案


当您调用时,您会将字符串中的mem_stats.split()所有空格分隔值放入一个列表中。mem_stats

因此,如果您感兴趣的值是第二个和第四个元素(考虑到 'Mem:' 也是您的初始字符串的一部分),您可以从该列表中访问它们:

mem_fields = mem_stats.split()

total_mem = mem_fields[1] 
avail_mem = mem_fields[3]

根据您所说的,我不明白为什么您应该进行任何字符串解析来获取所需的字段。


推荐阅读