python进行串口数据处理 | 输出表格 | AI

前言

在单片机开发过程中,我们时长会遇到一个问题,就是我们需要通过串口打印来检测设备的工作状态,比如我们1s 采集了一个设备的温度和加热功率。那么我们收到的数据包可能如下:

------------------------------------water_tempertura:  78
after buchang  temp: 293 
refresh keep warm time 

[11:08:40.855]收←◆refresh keep warm time 
current keep warming 

 adc_raw5: 2131 
BASE_temp: 293 
------------------------------------water_tempertura:  78
after buchang  temp: 293 

[11:08:41.856]收←◆current keep warming 

 adc_raw5: 2135 
BASE_temp: 292 
------------------------------------water_tempertura:  78
after buchang  temp: 292 
refresh keep warm time 

[11:08:42.855]收←◆refresh keep warm time 
current keep warming 

 adc_raw5: 2135 
BASE_temp: 292 

上述简单展示了3s的采集数据,但是如何这个数据量特别大,比如5000s的数据,我们要分析就比较困难,此时我们会要用表格来梳理形成曲线图,这样方便我们进行分析。

数据处理

1、我们将数据的txt,直接给AI 进行处理。但是AI的处理文本token是有限的,少数据倒是问题不大,但是当数据量比较大的时候,AI就无法处理了
2,然后近期从同事那边了解到可以利用python的数据处理功能进行处理提取,并生成表格。

环境准备

安装vscode
安装python编译环境

python代码编写

import re
from openpyxl import Workbook

def process_file_and_create_excel(keywords):
    with open("water4.txt", "r", encoding="utf-8") as file:
        content = file.read()

    workbook = Workbook()
    worksheet = workbook.active
    worksheet.title = "Results"

    # 添加列标题
    headers = [keyword.rstrip('/') for keyword in keywords.split('/')]
    worksheet.append(headers)

    # 初始化一个列表来存储匹配结果
    results = []

    # 对每个关键字进行搜索
    for keyword in keywords.split('/'):
        if keyword:  # 确保关键字不为空water3
            pattern = fr"{keyword.rstrip('/')}[^\d]*(\d+)"
            matches = re.findall(pattern, content)
            results.append(matches)

    # 填充Excel表格
    # 假设所有关键字匹配到的结果数量相同
    max_length = max(len(result) for result in results)
    for i in range(max_length):
        row = [results[j][i] if i < len(results[j]) else '' for j in range(len(results))]
        worksheet.append(row)

    workbook.save("water4-outpput.xlsx")

# 用户输入的代码
keywords_input = input("读取完成,请键入关键字,以'/'分隔:")
process_file_and_create_excel(keywords_input)

我们只需要在当前py文件下,在python代码中,输入文件的路径。
输入要提取的字段名,然后以 / 结尾,
执行文件的输出名称。
最后输出表格到当前目录下


例如:输入的提取变量键名为:

BASE_temp/tempertura/power/

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值