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教程