python解析基于xml格式的日志文件
发布时间 - 2026-01-10 23:17:00 点击率:次大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本。

首先,同样的先看看日志是个啥样。
都是xml格式的,是不是看着就头晕了??没事,我们先来分析一波。
1.每一段开头都是catalina-exec,那么我们就按catalina-exec来分,分了之后,他们就都是一段一段的了。
2.然后,我们再在已经分好的一段段里面分,找出你要分割的关键字,因为是xml的,所以,接下来的工作就简单了,都是一个头一个尾的。
3.但是还有一个问题,有可能有的里面没有你想要的关键字,所以你要判断下,如果没有这个字段,那么我就把这个字段设置为空。
思路清晰了,代码自然而然就简单了。
接下来我们就看看代码
#coding:utf-8
import re
#文本所在TXT文件
file = 'iag_interface.log'
#分割一段
xml1='catalina-exec'
xml2='catalina-exec'
#关键字reqtimestamp
time1 = '<timestamp>'
time2 = '</timestamp>'
#关键字functionid
functionid1 = '<functionid>'
functionid2 = '</functionid>'
#关键字transid
transid1='<transid>'
transid2='</transid>'
#关键字siappid
siappid1='<siappid>'
siappid2='</siappid>'
#关键字userid
userid1='<userid>'
userid2='</userid>'
#关键字mobnum
mobnum1='<mobnum>'
mobnum2='</mobnum>'
f = open(file,'r',encoding= 'utf-8')
#f = open(file,'r')
#for (num,value) in enumerate(f):
#print("line number",num,"is:",value)
buff = f.read()
#清除换行符,请取消下一行注释
#buff = buff.replace('\n','')
pat = re.compile(time1+'(.*?)'+time2,re.S)
pat1 = re.compile(functionid1+'(.*?)'+functionid2,re.S)
pat2 = re.compile(transid1+'(.*?)'+transid2,re.S)
pat3 = re.compile(siappid1+'(.*?)'+siappid2,re.S)
pat4 = re.compile(userid1+'(.*?)'+userid2,re.S)
pat5 = re.compile(mobnum1+'(.*?)'+mobnum2,re.S)
pat6=re.compile(xml1+'(.*?)'+xml2,re.S)
result6 = pat6.findall(buff)
print(len(result6))
x = open("logfx.txt", 'w')
x.write("===========================开始数据================================="+"\n")
x.write("time"+"\t"+"functionid"+"\t"+"transid"+"\t"+"siappid"+"\t"+"userid"+"\t"+"mobnum"+"\n")
for i in range(0,len(result6)):
result = pat.findall(result6[i])
result1 = pat1.findall(result6[i])
result2 = pat2.findall(result6[i])
result3 = pat3.findall(result6[i])
result4 = pat4.findall(result6[i])
result5 = pat5.findall(result6[i])
if len(result)==0:
result.append("空")
if len(result1)==0:
result1.append("空")
if len(result2)==0:
result2.append("空")
if len(result3)==0:
result3.append("空")
if len(result4)==0:
result4.append("空")
if len(result5)==0:
result5.append("空")
#print(result[0],"=",result1[0],"=",result2[0],"=",result3[0],"=",result4[0],"=",result5[0])
x.write("timestamp:"+result[0]+"\t"+result1[0]+"\t"+result2[0]+"\t"+result3[0]+"\t"+result4[0]+"\t"+"mobnum:"+result5[0]+"\n")
x.write("===========================结束数据================================="+"\n")
print("执行完毕!生成文件logfx.txt")
x.close()
运行下代码
python解析基于xml格式的日志文件把所有数据运行成功了。接下来查看文件
好了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# python解析日志文件
# python解析xml格式日志文件
# python解析xml日志文件
# Python创建xml的方法
# 使用PYTHON创建XML文档
# 使用Python生成XML的方法实例
# Python存取XML的常见方法实例分析
# Python处理XML格式数据的方法详解
# 用Python解析XML的几种常见方法的介绍
# Python 解析XML文件
# Python lxml模块安装教程
# Python获取任意xml节点值的方法
# Python使用minidom读写xml的方法
# 详细解读Python中解析XML数据的方法
# Python创建xml文件示例
# 都是
# 一波
# 你要
# 看着
# 是个
# 好了
# 还没
# 有可能
# 就把
# 给大家
# 如果没有
# 还有一个
# 好久没
# 分了
# 自然而然
# 先来
# 你想要
# 大家多多
# 为空
# 小知识
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
iOS中将个别页面强制横屏其他页面竖屏
Laravel如何配置任务调度?(Cron Job示例)
Laravel如何实现模型的全局作用域?(Global Scope示例)
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何快速查询域名建站关键信息?
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
Laravel storage目录权限问题_Laravel文件写入权限设置
如何在IIS中新建站点并配置端口与物理路径?
微信公众帐号开发教程之图文消息全攻略
在线制作视频的网站有哪些,电脑如何制作视频短片?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
敲碗10年!Mac系列传将迎来「触控与联网」双革新
如何构建满足综合性能需求的优质建站方案?
Laravel模型事件有哪些_Laravel Model Event生命周期详解
如何快速搭建高效可靠的建站解决方案?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
香港服务器网站推广:SEO优化与外贸独立站搭建策略
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
如何为不同团队 ID 动态生成多个“认领值班”按钮
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
香港服务器选型指南:免备案配置与高效建站方案解析
如何在腾讯云服务器上快速搭建个人网站?
企业网站制作这些问题要关注
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel如何使用withoutEvents方法临时禁用模型事件
如何打造高效商业网站?建站目的决定转化率
打造顶配客厅影院,这份100寸电视推荐名单请查收
Laravel怎么实现模型属性的自动加密
Swift开发中switch语句值绑定模式
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
如何快速完成中国万网建站详细流程?
Python文件异常处理策略_健壮性说明【指导】
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
Laravel怎么清理缓存_Laravel optimize clear命令详解
专业商城网站制作公司有哪些,pi商城官网是哪个?
大连网站制作公司哪家好一点,大连买房网站哪个好?
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程

