Python基础知识综合运用-学习版

简介: Python基础知识综合运用-学习版

本章分享一点实用的东西,读取log文件,并做筛选,提取想要的数据。

思路提供者:liuxingyuvs.top

前言

本章为实用部分,涵盖多个基础知识点。


log数据如下:

log 4
4
#
------info(111.855)------
<charge>
vl    : 458 mv
cr    : 0 ma
<warn>
wv    : 0
bp    : 0
op    : 0
cp    : 0
<work>
tt   : 0
al  : 0
tt   : 0
go   : 0
hl   : 0
bt  : 0
<batterry>
vl    : 11346 mv
cr    : 1054 ma
cp    : 66 %
tr   : 11.96 w
<motor>
vl    : 8093 mv
cr    : 960 ma
dv    : pwr
dy   : 71.33 %
mr   : 10.89 w
status : forward
<water>
in     : 1138 mv
water_status: 2
wp    : 0.00 w
wp    : 0.00 w
<hall>
count  : 0
status : 1
<ic>
br   : 0
cr   : 0
<qmi8658>
error  : 0
<temperature>
pt   : 27.9 °C
bt   : 26.7 °C
<board>
v3 : 3289 mv
v5  : 4931 mv
v9  : 3026 mv
en  : 1
------info(112.431)------
<charge>
vl    : 457 mv
cr    : 0 ma
<warn>
wv    : 0
bp    : 0
op    : 0
cp    : 0
<work>
tt   : 0
al  : 0
tt   : 0
go   : 0
hl   : 0
bt  : 0
<batterry>
vl    : 11327 mv
cr    : 1194 ma
cp    : 66 %
tr   : 13.52 w
<motor>
vl    : 10826 mv
cr    : 1240 ma
dv    : pwr
dy   : 95.58 %
mr   : 14.05 w
status : forward
<water>
in     : 615 mv
water_status: 2
wp    : 0.00 w
wp    : 0.00 w
<hall>
ct  : 0
ss : 1
<i2c>
br   : 0
cr   : 0
<qmi8658>
error  : 0
<temperature>
pt   : 28.1 °C
bt   : 26.8 °C
<board>
v3 : 3289 mv
v5  : 4932 mv
v9  : 6499 mv
en  : 1

「需求:取出change下的两个参数」

方法一

with open("11.log",'r',encoding='utf-8') as r:
    for values in r:
        # print(values.strip().replace('\n',''))
        if 'charge' in values:
            for i in range(2):
                value = r.readline().strip()
                # value = r.readlines(15)
                print(value)
            # str_ = ''.join(value)
            # print(str_)

里面写了两种,一种是基于line,另一种基于lines。

lines的写法看看就行,实际切不可采取使用这样的方式。


方法二

还是用的字符串处理方式,跟上述有些不太一样。主要用的是分割以及下标取值

with open("11.log",'r',encoding='utf-8') as r:
    res = r.read()
    charge_data = res.split("<charge>")  # 取出 charge 数据部分并按行划分
    for value in charge_data:
        vl = value.split("\n")[1]
        cr = value.split("\n")[2]
        if len(vl or cr) < 3:
            continue
        print(vl)
        print(cr)

方法三

正则提取

import re
with open("11.log",'r',encoding='utf-8') as r:
    data = r.read()
find_str = '<work>'
matches = re.findall(r'{}\n(.*?)\n(.*?)\n'.format(find_str), data)
for match in matches:
    vl, cr = match
    print(vl)
    print(cr)

方法四

还是字符串匹配。

with open('11.log', 'r') as f:
    s = f.read()
start = '<work>\n'
end = '\n<batterry>'
start_idx = s.find(start)
while start_idx != -1:  
    end_idx = s.find(end, start_idx)
    if end_idx != -1:
        data = s[start_idx + len(start):end_idx].strip()
        print(data)
        start_idx = s.find(start, end_idx)
    else:
        break


目录
相关文章
|
1月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
260 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
1月前
|
机器学习/深度学习 人工智能 架构师
Python学习圣经:从0到1,精通Python使用
尼恩架构团队的大模型《LLM大模型学习圣经》是一个系统化的学习系列,初步规划包括以下内容: 1. **《Python学习圣经:从0到1精通Python,打好AI基础》** 2. **《LLM大模型学习圣经:从0到1吃透Transformer技术底座》**
Python学习圣经:从0到1,精通Python使用
|
1月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
390 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
1月前
|
开发者 Python
Python学习九:file操作
这篇文章是关于Python文件操作的详细教程,包括文件的打开、读写、关闭,以及文件备份脚本的编写和文件定位操作。
21 2
|
1月前
|
机器学习/深度学习 人工智能 架构师
|
1月前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
75 0
|
1月前
|
Python
python学习之旅(基础篇看这篇足够了!!!)(下)
python学习之旅(基础篇看这篇足够了!!!)(下)
27 0
|
1月前
|
存储 程序员 Python
python学习之旅(基础篇看这篇足够了!!!)(上)
python学习之旅(基础篇看这篇足够了!!!)(上)
35 0
|
1月前
|
数据安全/隐私保护 Python
python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
这篇文章介绍了Python中两个常用模块的使用:加密模块pyarmor用于保护代码,以及时间模块time用于处理时间相关的功能。
76 0
|
1月前
|
JavaScript 前端开发 Scala
Python学习十:正则表达式
这篇文章是关于Python中正则表达式的使用,包括re模块的函数、特殊字符、匹配模式以及贪婪与非贪婪模式的详细介绍。
18 0
下一篇
无影云桌面