Python之txt数据预定替换word预定义定位标记生成word报告(一)

liftword1个月前 (03-29)技术文章11

一、需求描述

1. 项目背景:在系统运维过程中,需要对多个服务器的系统信息进行检查并生成报告。现有一系列以特定格式命名的TXT文件存储检查日志(该日志来之linux系统以命令检查uptime、ntp、cpu、memory、net等运行情况),以及一个Word模板用于生成最终报告,需要开发一个工具将TXT文件中的数据准确填充到Word模板的指定位置,生成完整的系统平台报告。

2. 功能需求

– 从TXT文件存储目录中读取所有相关TXT文件。

– 从文件名中提取IP地址,并验证文件名格式是否正确。

– 解析TXT文件内容,按照预定义的检查项标记提取相应的数据。

– 分析Word模板,识别指定范围内表格中的IP地址和定位标记位置,并建立IP - 表格 - 标记的映射关系。

– 根据建立的映射关系,将TXT文件中提取的数据精准填充到Word模板对应表格的指定位置。

– 生成最终的Word报告并保存到指定路径。

3. 输入输出要求

– 输入:TXT文件存储目录路径、Word模板路径、输出报告路径,以及预定义的检查项配置。

– 输出:一个填充好数据的Word格式系统平台报告。

该需求通过5章python代码来实现。

二、pthon代码--全局配置部分

import os
import re
import time
from docx import Document
from collections import OrderedDict, defaultdict

# ================== 全局配置 ==================
CHECK_TIME = time.strftime('%Y-%m-%d')
TXT_DIR = r"D:\xunjian\check_log\checkOS"
TEMPLATE_PATH = r"D:\xunjian\系统平台模板.docx"
OUTPUT_PATH = r"D:\xunjian\系统平台报告_已生成-" + str(CHECK_TIME) + ".docx"

# 检查项配置(完整6个标记,有序字典保证处理顺序)
CHECK_BLOCKS = OrderedDict([
    ("##UPTIME##", (r"^---check uptime$", r"^---check ntp$")),
    ("##NTP##", (r"^---check ntp$", r"^---check cpu$")),
    ("##CPU_USAGE##", (r"^---check cpu$", r"^---check memory$")),
    ("##MEMORY_USAGE##", (r"^---check memory$", r"^---check IO$")),
    ("##NET_USAGE##", (r"^---check IO$", r"^---check disk$")),
    ("##FILESYSTEM_USAGE##", (r"^---check disk$", r"^---check end$"))
])
- **导入模块**:`os`用于操作系统相关操作,`re`用于正则表达式处理,`time`用于获取时间,`Document`从`docx`库中导入用于操作Word文档,`OrderedDict`和`defaultdict`从`collections`库中导入用于处理有序字典和默认值字典。
- **定义全局变量**
    - `CHECK_TIME`:获取当前日期,格式为`YYYY - MM - DD`,用于生成输出报告的文件名。
    - `TXT_DIR`:TXT文件存储目录路径。
    - `TEMPLATE_PATH`:Word模板文件路径。
    - `OUTPUT_PATH`:输出报告的路径,文件名包含当前日期。
    - `CHECK_BLOCKS`:一个有序字典,定义了检查项标记及其对应的起始和结束正则表达式模式,用于从TXT文件中提取数据。

相关文章

Python 中读取、写入和管理文件的基础知识

File 处理是 Python 中每个开发人员都应该掌握的一项基本技能。无论您是在处理文本文件、日志、配置文件,还是二进制数据,了解如何读取、写入和管理文件都是必不可少的。Python 的内置工具使文...

一文掌握Python找到文件操作

阅读文件读取文件的全部内容:with open('example.txt', 'r') as file: content = file.read() print(content)2....

Python文件和异常处理打开、读写和关闭文件详解

文件和异常处理是 Python 编程中非常重要的概念。在本篇文章中,我们将详细讲解如何打开、读写和关闭文件,以及如何处理异常。文件操作在 Python 中,可以使用内置的 open() 函数打开文件。...

小白零基础用Python半小时搞定TXT转PDF!附赠脚本

"原来根本不用充会员!" 昨天我还在为100本TXT电子书无法上传腾讯ima知识库急得跳脚,今天却用60行Python代码实现了全自动转换pdf(全程没花1分钱)。作为一个连安装软件都要百度的新手,这...

Python 文件读写(txt、json、xml、ini)

在进行接口自动化测试时,我们经常需要处理各种格式的文件。熟练掌握对这些文件的读写能力对于提升测试效率至关重要。今天我们就来一起学习如何用Python来操作常见的文件类型,包括文本文件(.txt)、JS...

怎么用Python提取txt的章节目录?

提取txt文本中的章节在网络上下载的小说,一般是txt格式的,并且往往是没有目录的。那么有没办法提取出小说的目录呢?下面是一个示例代码,用于提取txt文本中的章节作为目录: import re #...