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)

四、问题及其改进

 有时候数据为字符类型,我们需要转成int类型,否则做的图会有问题

    # 安全地将每个元素转换为intint_list = []for item in current_chunk:try:int_list.append(int(float(item)))  # 首先尝试将字符串转换为浮点数,然后转换为整数except ValueError:print(f"无法转换: {item}")

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

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

相关文章

STM32(16)使用串口向电脑发送数据

发送字节 发送数组 发送字符和字符串 字符: 字符串: 字符串在电脑中以字符数组的形式存储

访问修饰符、Object(方法,使用、equals)、查看equals底层、final--学习JavaEE的day15

day15 一、访问修饰符 含义: 修饰类、方法、属性,定义使用的范围 理解:给类、方法、属性定义访问权限的关键字 注意: ​ 1.修饰类只能使用public和默认的访问权限 ​ 2.修饰方法和属性可以使用所有的访问权限 访问修饰符本类本包…

干货 | MSC细胞培养 “秘籍”

MSC培养细节,这里有您想知道的~ MSC:间充质干细胞,是一群贴壁生长、形态类似于成纤维细胞的多能成体干细胞,存在于脐带、骨髓和脂肪组织等多种组织中,并且可以分化成多种不同的组 实验数据分享 1、样本:冻…

【比较mybatis、lazy、sqltoy、mybatis-flex、easy-query操作数据】操作批量新增、分页查询(三)

orm框架使用性能比较 比较mybatis、lazy、sqltoy、mybatis-flex、easy-query操作数据 环境: idea jdk17 spring boot 3.0.7 mysql 8.0测试条件常规对象 orm 框架是否支持xml是否支持 Lambda对比版本mybatis☑️☑️3.5.4sqltoy☑️☑️5.2.98lazy✖️☑️1.2.4…

JavaScript极速入门(2)

JQuery W3C标准给我们提供了一系列函数,让我们可以操作: 网页内容 网页结构 网页样式 但是原生的JavaScript提供的API操作DOM元素时,代码比较繁琐,冗长.我们学习使用JQuery来操作页面对象. JQuery是一个快速,简洁且功能丰富的JavaScript框架,于2006年发布.它封装JavaScript常…

乐优商城(八)商品详情

1. 搭建商品详情微服务 当用户搜索到商品后,如果想要了解商品的更多信息,就需要进入商品详情页。 由于商品详情浏览量比较大,所以我们会创建一个微服务,用来展示商品详情。我们的商品详情页会采用 Thymeleaf 模板引擎渲染后&…

【三维重建】相移法+格雷码

本篇文章介绍一种稠密点云的获取方式——条纹结构光三维重建算法。 在学习此算法前,我们需要对基于视觉的三维重建算法有一定了解。 需要了解什么是相机模型、相机标定以及三角化的相关知识。 【三维重建】摄像机几何-CSDN博客 【三维重建】摄像机标定&#xff…

【C++干货基地】六大默认成员函数: This指针 | 构造函数 | 析构函数

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

听 GPT 讲 client-go 源代码 (24)

分享更多精彩内容,欢迎关注! File: client-go/applyconfigurations/batch/v1/jobstatus.go 在client-go的applyconfigurations/batch/v1/jobstatus.go文件中,定义了与Job的状态相关的配置和操作。 文件中定义了以下几个结构体: Jo…

Kube-Prometheus 监控Istio

推荐 Istio 多集群监控使用 Prometheus,其主要原因是基于 Prometheus 的分层联邦(Hierarchical Federation)。 通过 Istio 部署到每个集群中的 Prometheus 实例作为初始收集器,然后将数据聚合到网格层次的 Prometheus 实例上。 网…

Kruscal建树+倍增LCA,蓝桥2023省赛,网络稳定性

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 2.网络稳定性 - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 考虑到…

自动驾驶预测与决策规划(nuplan数据集)

欢迎大家关注我的B站: 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.概述 2 数据采集 3.开环与闭环仿真 4.数据注释 5.场景 6.规划框架 6.1Train 6.2Simulation 6.3Metric 6.4Visualization 7.下载…

【2024.03.05】定时执行专家 V7.1 发布 - TimingExecutor V7.1 Release

目录 ▉ 软件介绍 ▉ 新版本 V7.1 下载地址 ▉ V7.1 新功能 ▼2024-03-03 V7.1 - 更新日志 ▉ V7.0 新UI设计 ▉ 软件介绍 《定时执行专家》是一款制作精良、功能强大、毫秒精度、专业级的定时任务执行软件。软件具有 25 种【任务类型】、12 种【触发器】触发方式&#x…

基于51单片机风速仪风速测量台风预警数码管显示

基于51单片机风速仪风速测量报警数码管显示 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告🔗6. 下载链接资料下载链接: 基于51单片机风速仪风速测量报警数码管显示( proteus仿真程序设计报告讲解视频) 仿真图…

CRMCHAT修复获取客户ip信息,地区信息

CRMCHAT修复获取客户ip信息,地区信息-TP源码网原因: 因pv.sohu.com/cityjson?ieutf-8接口已无法正确获取ip信息,导致后台站点统计无法正确获取用户ip信息,无法获取地区信息 修改 注释掉无用接口地址 修复ip信息 也可以使用&…

【Lazy ORM】 小工具 acw 本地客户端 你负责点击页面,他负责输出代码

介绍 wu-smart-acw-client 简称acw-client&#xff0c;是一个基于Lazy ORM定制的客户端代码生成小工具 Lazy ORM 小工具 acw 本地客户端 你负责点击页面&#xff0c;他负责输出代码安装 <dependency><groupId>top.wu2020</groupId><artifactId>wu-sma…

即插即用篇 | YOLOv8 引入 ParNetAttention 注意力机制 | 《NON-DEEP NETWORKS》

论文名称:《NON-DEEP NETWORKS》 论文地址:https://arxiv.org/pdf/2110.07641.pdf 代码地址:https://github.com/imankgoyal/NonDeepNetworks 文章目录 1 原理2 源代码3 添加方式4 模型 yaml 文件template-backbone.yamltemplate-small.yamltemplate-large.yaml

2024蓝桥杯每日一题(前缀和)

一、第一题&#xff1a;壁画 解题思路&#xff1a;前缀和贪心枚举 仔细思考可以发现B值最大的情况是一段连续的长度为n/2上取整的序列的累加和 【Python程序代码】 import math T int(input()) for _ in range(1,1T):n int(input())s input()l math.ceil(len(s)/…

图文并茂的讲清楚Linux零拷贝技术

今天我们来聊一聊Linux零拷贝技术&#xff0c;今天我们以一个比较有代表性的技术sendfile系统调用为切入点&#xff0c;详细介绍一下零拷贝技术的原理。 1.零拷贝技术简介 Linux零拷贝技术是一种优化数据传输的技术&#xff0c;它可以减少数据在内核态和用户态之间的拷贝次数&…

Linux报错排查-刚安装好的ubuntu系统无法ssh连接

Linux运维工具-ywtool 目录 一.问题描述二.问题解决2.1 先给ubuntu系统配置阿里云源2.2 安装openssh-server软件2.3 在尝试ssh连接,可以连接成功了 三.其他命令 一.问题描述 系统:ubuntu-18.04-desktop-amd64 系统安装完后,想要通过xshell软件连接系统,发现能Ping通系统的IP,但…