Python数据处理实战(4)-上万行log数据提取并作图进阶版

系列文章:

0、基本常用功能及其操作

1,20G文件,分类,放入不同文件,每个单独处理

2,数据的归类并处理

3,txt文件指定的数据处理并可视化作图

4,上万行log数据提取并作图进阶版(本文)

5、上万行数据提取并分类进阶版

6、.......... (待定)

 一,需求

         作测试时,我们经常需要对大量数据进行提取并可视化,也就是作图

        上万行的数据,我们不方便提取到excel,复制时还会卡,一不小心,所以呢自动化作图就非常方便。 

         类似下面这种的数据,格式可能不尽相同,但是基本上每一行的格式一样,我们需要提取时间并作图,查看随着次数的增加的变化率。

二、思路及其实现

        1、文件操作,文件的读取并每行提取

        2、特定字符的提取,指定的时间,电压,电流,或者次数等等等等

        3、作散点图,标题,坐标轴等等信息 

 上述操作不了解的同学呢,可以去系列文章0_基本操作,去参考查阅学习。

三、代码

 作为进阶版,我把函数封装了一下,可以更方便操作

def log_to_pic(log_path,start_char,end_char,title):# 定义计数器以跟踪当前处理的行数counter = 0# 定义一个临时列表存储当前正在处理的值组current_chunk = []# #LOG_TO_PIC# 适用于每一行都有的情况下,每行格式都一样,数据量非常大的那种with open(log_path, 'r') as file:for line in file:# 查找 "&]=&" 和 "&mS" 之间的字符串start_index = line.find(start_char)end_index = line.find(end_char, start_index)# 如果每行都有的情况下,if start_index != -1 and end_index != -1:# 提取字符串并去掉空格time_data = line[start_index + len(start_char):end_index].strip()# 尝试将字符串转换为浮点数try:current_chunk.append(time_data)except ValueError:# 当转换失败时,忽略这个数据continue# 散点图数据为每组的最大值、最小值和平均值plt.scatter(range(len(current_chunk)), current_chunk, color='red', marker='o')# 设置图表的标题和图例plt.title(title)plt.xlabel('CYCLE')plt.ylabel('TIME(US)')# plt.legend()# 显示图表plt.show()

下面是主函数

        这里用到的数据的提取是字符串的识别,因为在两个中间,同时,可以应对不同的文件,可自行修改。方便快捷

if __name__ == '__main__':import reimport oslog_path = './log/XXX/XXXX.txt'start_char = "SR2 ="end_char = "uS"title = 'XXXXXXXXX'log_to_pic(log_path,start_char,end_char,title)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一款非常适合老中医用的《书剑中医电子处方软件简明版》

上了年纪的老中医,虽然经验丰富,但是电脑的基础都比较差,而开处方的软件通常又设计的太复杂,想用电脑开处方就非常困难,所以只好坚持手写开处方。最近,小编找到了一款非常简单的《书剑中医电子处方软件简明…

【设计数据密集型应用】复制

👏作者简介:大家好,我是爱敲代码的小黄,阿里淘天Java开发工程师,CSDN博客专家📕系列专栏:Spring源码、Netty源码、Kafka源码、JUC源码、dubbo源码系列🔥如果感觉博主的文章还不错的话…

Liinux——(网络)socket编程

预备知识 源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址 认识端口号 端口号(port)是传输层协议的内容. 端口号是一个2字节16位的整数;端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪个进程来处理;IP地址 端口号能…

tomcat搭建个人博客 实现动静分离

jar包相关 .war:WebApp打包,类zip格式文件,通常包括一个应用的所有资源,比如jsp,html,配置文件等 .jar:EJB类文件的打包压缩类zip格式文件,,包括很多的class文件, 网景公司发明 .rar:资源适配器类打包文件,目前已不常…

[数据结构]OJ用队列实现栈

225. 用队列实现栈 - 力扣(LeetCode) 官方题解:https://leetcode.cn/problems/implement-stack-using-queues/solutions/432204/yong-dui-lie-shi-xian-zhan-by-leetcode-solution/ 首先我们要知道 栈是一种后进先出的数据结构&#xff0c…

艺术与科技的结合,AI绘画图生图怎么样?

AI绘画图生图是指通过人工智能技术生成的具有艺术价值的图像。它可以根据用户提供的参考图像或描述,自动生成具有艺术风格的新图像。这些图像可以是风景、人物、抽象画等各种形式。那么ai绘画图生图到底怎么样? AI绘画图生图的优点在于它可以快速、高效地…

基于springboot+vue的高校教师电子名片系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

ANTLR4规则解析生成器(三):遍历语法分析树

文章目录 1 词法分析2 语法分析3 遍历语法分析树3.1 Listener3.2 Visitor 4 总结 1 词法分析 词法分析就是对给定的字符串进行分割,提取出其中的单词。 在antlr4中,词法规则的名称的首字母需要大写,右侧必须是终结符,通常将词法…

力扣经典题目解析--反转链表

原题地址: . - 力扣(LeetCode) 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 题目解析 链表(Linked List&…

仓储管理系统(WMS) 的研发历程-PRD撰写

题外话:PRD的展现形式有多种,有的人喜欢在axure上直接做产品描述,觉得word较为过时,有的人认为axure不专业,任何展现形式都无可厚非,重要的达到PRD的目的,PRD的目标是让团队知道需求实现细节&am…

启动Docker镜像时候,ENTRYPOINT 和CMD这两者指令的写法有什么不同和区别?

ENTRYPOINT和CMD在Dockerfile中都用于指定容器启动时执行的命令,但它们之间存在一些关键的区别和不同的用途: 1. 基本用途和行为差异 ENTRYPOINT 定义了容器启动时执行的基础命令,使得容器像一个可执行程序。ENTRYPOINT让你能够指定容器启动…

经验分享:水牛社怎么做?

本人也就是通过他慢慢学习成长起来的。还是一个网友推荐的,现在他对我来说算是大佬了,已经单飞了,好久都没有联系了,呵呵,真是人往高处走,水往低处流啊。 做网赚会经常和一些网络小白聊天,聊着…

回调函数、回调地狱、解放方法Promise的用法

回调函数 回调函数的定义非常简单:一个函数被当做一个实参传入到另一个函数(外部函数),并且这个函数在外部函数内被调用,用来完成某些任务的函数。就称为回调函数回调函数的两种写法(实现效果相同): const text () > {docum…

个人项目介绍4:三维园区篇

个人项目介绍: 地图铁路线路篇 地球卫星篇 火车站篇 三维园区篇 项目需求: 1.按比例全景显示三维园区 2.精确显示园区内设备设施 3.实时显示设备报警信息 4.显示园区内摄像监控设备,并可点击显示监控视频流 5.显示园区内的重大危险源和风险分布 …

PCL 路面点云标线提取(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 算法来自本人自创。实现效果如下图所示,具体实现原理看代码即可。 二、代码实现 #include

bean的管理方式

默认情况下,spring项目启动时,会把bean对象全部创建好放到ioc容器 主动获取bean对象:getBean里面传入bean的名称或bean的类型 注意如果没有主动设置bean的名称,则默认名称是对应类名的首字母小写 在ioc容器中,bean对…

今天分享一个好看的输入法皮肤相信每个人心里住着一个少女心我们美化一下她吧

标题: 白日梦皮肤上线,百度输入法助你开启梦幻之旅! 正文: 大家好呀!今天我来给大家安利一款超级梦幻的百度输入法皮肤——“白日梦”系列! 这款皮肤的设计灵感来源于我们内心深处的白日梦,充…

14. C++继承与虚函数

【继承基础概念】 继承可以让本类使用另一个类的非私有成员,提供共用成员的类称为父类或基类,使用共用成员的类称为子类或派生类,子类创建对象时会包含继承自父类的成员。 继承的优势是减少重复定义数据,当本类需要在另一个类的…

L1-009 N个数求和

MD...提交过了好几次才通过。 第三个测试点: 需要使用long long,要求长整型。干脆就把int全部替换成long long。 第五个测试点: 随便试出来的,我输入了2 1/2 -1/2,发现啥都没打印出来。原来是忽略了结果是0的情况,如果整数部分和分子部分都…

LabVIEW高温摩擦磨损测试系统

LabVIEW高温摩擦磨损测试系统 介绍了一个基于LabVIEW的高温摩擦磨损测试系统的软件开发项目。该系统实现高温条件下材料摩擦磨损特性的自动化测试,通过精确控制和数据采集,为材料性能研究提供重要数据支持。 项目背景 随着材料科学的发展,…