如何使用Pandas提取输出中的AP "EO7" Hardware Information表格
可以用Pandas提取AP "EO7" Hardware Information表格,具体操作分两种常见场景:
场景1:目标表格来自HTML页面/HTML字符串
如果你的原始内容是HTML格式(比如网页源码、带多个表格的HTML片段),直接用pandas.read_html()批量读取所有表格,再通过特征筛选目标表格:
- 读取所有表格到列表:
import pandas as pd # 替换为你的HTML文件路径或HTML字符串 tables = pd.read_html("your_ap_info.html")
- 筛选目标表格:
遍历表格列表,通过表格内的关键字定位:
target_table = None for table in tables: table_str = table.to_string() if "EO7" in table_str and "Hardware Information" in table_str: target_table = table break # 输出结果 if target_table is not None: print(target_table) else: print("未找到目标表格")
场景2:目标表格来自纯文本输出
如果原始内容是纯文本(比如CLI输出、日志文本),先分割文本定位表格范围,再转成DataFrame:
- 读取纯文本内容:
with open("ap_info.txt", "r") as f: content = f.read()
- 定位表格的起止位置:
用目标表格的标题作为起始标记,下一个无关表格的标题或特定分隔符作为结束标记,提取中间内容:
start_marker = 'AP "EO7" Hardware Information' # 根据实际文本调整结束标记,比如下一个AP的信息标题 end_marker = 'AP ' start_idx = content.find(start_marker) + len(start_marker) end_idx = content.find(end_marker, start_idx) # 如果表格在文本末尾,直接取到文本结束 if end_idx == -1: end_idx = len(content) table_text = content[start_idx:end_idx].strip()
- 转换为DataFrame:
拆分文本行,处理表头和数据:
# 按行拆分,过滤空行 rows = [line.strip() for line in table_text.split("\n") if line.strip()] # 按实际分隔符调整(比如制表符\t、多空格),这里以空格为例 header = rows[0].split() data = [row.split() for row in rows[1:]] target_table = pd.DataFrame(data, columns=header) print(target_table)
注意:实际操作时要根据原始内容的格式(比如分隔符、表格结构)调整代码里的标记和分割逻辑。
内容的提问来源于stack exchange,提问作者mehmet çece
相关产品推荐
相关产品推荐

