Google开源库Textfsm使用文档(中文翻译)

发布时间 2023-07-25 23:34:00作者: Désiré

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