TextFSM
介绍
TextFSM 是一个 Python 模块,实现了一个基于状态机的模板,用来解析半格式化的文本。
最初开发的目的是允许程序化地获取来源于 CLI 驱动设备的输出信息,例如网络路由器或交换机,不过它可以被用作任何这种类型的文本输出。
这个引擎需要两个输入:一个模板文件和文本输入(比如 CLI 设备的命令回显),并返回一个列表,记录包含从文本解析的数据。
一个模板文件需要唯一的结构化的文本输入。本文提供了一些代码示例,并鼓励用户独立开发。
通过开发一个模板文件池,脚本可以调用 textFSM 从各种来源中解析有用的信息。它同样有可能在相同的数据上用不同的模板,来创造不同的表格(或视图)。
详细说明
使用库
一个快速启动的例子:
# 通过FSM运行文本
# 这个'template'参数是一个文件句柄,'raw_text_data'参数是一个字符串
re_table = textfsm.TextFSM(template)
data = re_table.ParseText(raw_text_data)
# 展示csv的结果
# 打印第一列的标题
print( ', '.join(re_table.header) )
# 打印表的每一行数据
for row in data:
print( ', '.join(row) )
这个库可以直接执行,用于检查模板语法,以及将预计的输出和输入相比较:
parser.py [--help] template [input_file [output_file]]
如果安装为软件包,它将会在python的相关版本文件夹下:
usr/local/lib/pythonx.y/dist-packages/textfsm/parser.py
标签:Google,中文翻译,re,template,table,Textfsm,文本,data,模板
From: https://www.cnblogs.com/desireroot7/p/17581280.html