python - 从 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?
谢谢!
解决方案
当您调用时,您会将字符串中的mem_stats.split()
所有空格分隔值放入一个列表中。mem_stats
因此,如果您感兴趣的值是第二个和第四个元素(考虑到 'Mem:' 也是您的初始字符串的一部分),您可以从该列表中访问它们:
mem_fields = mem_stats.split()
total_mem = mem_fields[1]
avail_mem = mem_fields[3]
根据您所说的,我不明白为什么您应该进行任何字符串解析来获取所需的字段。
推荐阅读
- javascript - 如何使用 Webpack 和 React 预加载 css?
- ios - Xcode 似乎对函数所需的参数类型感到困惑
- r - For 循环适用于初学者 - 它如何在 R 中更好地工作?
- java - 如何递归地添加4个或更多数字?
- sql - 左加入与不退出
- sql-server - 为 UDT 中的每一行插入一行
- android - Lottie 动画在 recyclerview 中每 5 个元素发生一次
- excel - 如何循环遍历一个表列以过滤另一个表以通过电子邮件发送每个过滤后的表?
- android - 未知 URL content://media/external/images/media 在 android.content.ContentResolver.insert
- c# - 无法理解为什么在实例化我的对象时输入字符串的格式不正确?