广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python解析基于xml格式的日志文件
  • 471
分享到

python解析基于xml格式的日志文件

格式文件日志 2022-06-04 18:06:00 471人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波python解析日志的小脚本。 首先,同样的先看看日志是个啥样。 都是xml格式的,是不是看着就头晕了??没事,我们先

大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波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格式的日志文件把所有数据运行成功了。接下来查看文件

查看图片

好了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: python解析基于xml格式的日志文件

本文链接: https://www.lsjlt.com/news/13663.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python解析基于xml格式的日志文件
    大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本。 首先,同样的先看看日志是个啥样。 都是xml格式的,是不是看着就头晕了??没事,我们先...
    99+
    2022-06-04
    格式 文件 日志
  • 基于Python的XML格式的文件示例代码详解
    XML文件是可拓展标记语言,是一种简单的数据存储语言,被设计用来传输和存储数据 在Python中XML的一些方法 读取文件和内容 #引用xml模块 from xml.etree ...
    99+
    2022-11-11
  • 基于python实现cdn日志文件导入mysql进行分析
    目录一、本文需求背景二、需求落地如下三、自定义查询一、本文需求背景 周六日出现CDN大量请求,现需要分析其请求频次与来源,查询是否存在被攻击问题。 本文以阿里云CDN日志作为辅助查询...
    99+
    2022-11-11
  • 基于slf4j日志MDC输出格式的问题
    目录slf4j日志MDC输出格式配置使用原因分析slf4j输出日志的语法slf4j输出log的语法1. 直接拼接字符串2. 使用SLF4J的格式化功能3. 格式化占位符的转义4. l...
    99+
    2022-11-12
  • 基于Java实现XML文件的解析与更新
    目录选择一个格式XML 基础创建一个示例配置文件使用 Java 解析 XML使用 Java 访问 XML 的值使用 Java 更新 XML如何保证配置不出问题在你使用 Java 编写...
    99+
    2022-11-13
  • 基于python怎么实现cdn日志文件导入mysql进行分析
    本篇内容主要讲解“基于python怎么实现cdn日志文件导入mysql进行分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于python怎么实现cdn日志文件导入mysql进行分析”吧!一、...
    99+
    2023-06-30
  • 如何彻底解析Mixed日志格式的
    这篇文章将为大家详细讲解有关如何彻底解析Mixed日志格式的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。mysql binlog3种格式,row,mixe...
    99+
    2022-10-19
  • Android基于Pull方式解析xml的方法详解
    本文实例讲述了Android基于Pull方式解析xml的方法。分享给大家供大家参考,具体如下: Pull解析和Sax解析很相似,都是轻量级的解析,在Android的内核中已经嵌...
    99+
    2022-06-06
    解析xml XML 方法 Android
  • Android平台基于Pull方式对XML文件解析与写入方法详解
    本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法。分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需...
    99+
    2022-06-06
    xml文件 XML 方法 Android
  • 基于Python实现RLE格式分割标注文件的格式转换
    目录1.Airbus Ship Detection Challenge2.数据展示2.1 标注数据2.2 图象文件3.格式转换4.转换结果1.Airbus Ship Detectio...
    99+
    2022-11-11
  • Android中怎么使用pull方式解析xml格式文件
    这篇文章将为大家详细讲解有关Android中怎么使用pull方式解析xml格式文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体如下:<xml version="...
    99+
    2023-05-30
    android pull xml
  • 2:基于二进制日志文件位置的复制
    服务器 192.168.1.2 (master) ,服务器 192.168.1.3 (slave) 要将master配置为使用基于二进制日志文件位置的复制,必须启用二进制日志记录并建立唯一的server-...
    99+
    2022-10-18
  • 使用 Python 解析配置文件格式
    第一步是选择配置文件的格式:INI、JSON、YAML 或 TOML。 有时,程序需要足够的参数,将它们全部作为命令行参数或环境变量既不让人愉快也不可行。 在这些情况下,你将需要使用配置文件。 有几种流行的配置文件格...
    99+
    2022-06-02
    Python 解析配置文件 Python 配置文件
  • 基于NMAP日志文件的暴力破解工具BruteSpray有什么用
    这篇文章主要介绍基于NMAP日志文件的暴力破解工具BruteSpray有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!基于NMAP日志文件的暴力破解工具BruteSpray使用NMAP的-sV选项进行扫描,可以...
    99+
    2023-06-04
  • 解决python将xml格式文件转换成txt文件的问题(xml.etree方法)
    概述 先来介绍一下xml格式的文件,从数据分析的角度去看xml格式的数据集,具有以下的优点开放性(能在任何平台上读取和处理数据,允许通过一些网络协议交换xml数据)、简单性(纯文本,...
    99+
    2022-11-12
  • centos中日志式文件系统的示例分析
    这篇文章主要介绍了centos中日志式文件系统的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。日志式文件系统通常在系统运行中写入文件内容的同时,并没有写入文件的元数据...
    99+
    2023-06-10
  • python中解析json格式文件的方法示例
    前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - Decembe...
    99+
    2022-06-04
    示例 格式文件 方法
  • python操作XML格式文件的一些常见方法
    目录前言1. 读取文件和内容2.读取节点数据3.修改和删除节点4.构建文档 方式一ET.Element()补充:XML文件和JSON文件互转1、XML文件转为JSON文件2、JSON...
    99+
    2022-11-11
  • android开发基础教程—三种方式实现xml文件解析
    1.sax方式 代码如下: public class SaxParse{ private SAXParser parser; public SaxParse(){ try...
    99+
    2022-06-06
    xml文件 XML android开发 教程 Android
  • 如何利用 Python 脚本解析 Spring Boot 项目的日志文件?
    Spring Boot 是一种流行的 Java 应用程序框架,它的日志文件可以提供有关应用程序行为和错误的重要信息。但是,解析这些日志文件可能很困难,特别是当日志文件很大或需要长时间监视时。在本文中,我们将介绍如何使用 Python 脚本解...
    99+
    2023-09-04
    文件 关键字 spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作