Python高效解析F5 'show sys performance'输出并写入Excel
高效解析F5 "show sys performance" 输出并写入Excel
前提说明
假设show sys performance的输出格式如下(实际可根据你的设备输出调整正则规则):
Sys::Performance CPU usage Current : 12% Average : 10% Max : 25% Memory usage Current : 45% Average : 42% Max : 50%
实现代码
用正则表达式提取数据(比字符串拆分更鲁棒,适配输出格式的空格变化),结合openpyxl写入Excel:
import re from openpyxl import Workbook def parse_f5_performance(output_text): # 匹配CPU和内存的三个指标,兼容输出中的空格差异 pattern = re.compile( r'(CPU|Memory) usage\n' r'\s+Current\s+:\s+(\d+)%\n' r'\s+Average\s+:\s+(\d+)%\n' r'\s+Max\s+:\s+(\d+)%' ) matches = pattern.findall(output_text) result = {} for match in matches: component, current, avg, max_val = match result[component.lower()] = { 'Current': int(current), 'Average': int(avg), 'Max': int(max_val) } return result def write_to_excel(data, filename='f5_performance.xlsx'): wb = Workbook() # 创建并写入CPU工作表 cpu_ws = wb.create_sheet(title='CPU') cpu_ws.append(['指标', '数值(%)']) for key, val in data.get('cpu', {}).items(): cpu_ws.append([key, val]) # 创建并写入Memory工作表 mem_ws = wb.create_sheet(title='Memory') mem_ws.append(['指标', '数值(%)']) for key, val in data.get('memory', {}).items(): mem_ws.append([key, val]) # 删除默认生成的空白Sheet if 'Sheet' in wb.sheetnames: wb.remove(wb['Sheet']) wb.save(filename) print(f"数据已成功写入{filename}") # 示例调用 if __name__ == '__main__': # 替换为你的实际命令输出文本 f5_output = """ Sys::Performance CPU usage Current : 12% Average : 10% Max : 25% Memory usage Current : 45% Average : 42% Max : 50% """ parsed_data = parse_f5_performance(f5_output) write_to_excel(parsed_data)
关键说明
- 正则匹配:通过分组直接锁定组件类型和指标数值,自动忽略输出中的空格、缩进差异,比字符串拆分更稳定
- Excel操作:创建独立工作表分别存储CPU和内存数据,结构清晰,便于后续查看
- 扩展性:如果你的设备输出格式有细微调整,只需修改正则表达式的匹配规则即可适配
内容的提问来源于stack exchange,提问作者Tarun Gupta
相关产品推荐
相关产品推荐

