python 入门 第二讲 读取日志文件分析

 https://www.bilibili.com/video/av77410524?p=29

 

计算传感器日志文件中温度数据的平均值 

  • 日志文件包含1万条数据
  • 温度数据在文件的第3列
  • 输入:日志文件 sensor-data.txt
  • 输出:平均温度数值,保留小数点两位

 

ls = line.split() 这一行代码的作用是将每一行的元素以空格分开,并存放到一个列表中

 

注意事项:

python相比其他编程语言 

  • 每行后没有分号。
  • 没有begin,end,{ }等表示代码归属的元素,只用缩进表达代码的所属关系。
  • 变量直接使用,无需类型声明。
  • open()、close()、split()等基本函数和方法直接使用,无需引用。 

 

 文件的打开模式

  • r  :只读模式,默认值,如果文件不存在,返回FileNotFoundError

  • w : 覆盖写模式,文件不存在则创建,存在则完全覆盖

  • f = open('t1.txt','r')  #只读模式打开文件
  • f = open('t1.txt','w')  #覆盖写模式打开文件

将文件全部读入以字符串形式保留 

f.read() 一次性读入到字符串txt中

文件的全文读入

一次性全部读入文本

f = open("f.txt","r")

txt = f.read()

#对全文txt进行处理

f.close()

文件按行读入文本

f= open("f.txt","r")

for line in f:

    #每行文本保存在line中,可逐行处理。

f.close()

 

第二部分 循环语句

   python包括两种循环:遍历循环  无限循环

  • 遍历循环  :由for和in组成,从遍历结构中逐一获得元素进行循环
  • 无限循环:使用while关键字,由条件控制循环过程

 

 

 

try中的代码如果出现错误,那么就会执行except下面的代码

如果没有出错,那么程序正常执行,就不会执行except部分的代码

avg计算数据的和

cnt计算日志文件的行数

avg/cnt 获得平均温度

#文件按行读入
f= open("f.txt","r")

for line in f:

    #每行文本保存在line中,可逐行处理。

f.close()

字符串的split()方法

split()方法:能够根据空格分隔字符串,结果保存到列表变量中

ls = "1 2 3 4 5 6 7".split()

print(ls)  #['1','2','3','4','5','6','7']

修改这个代码,尝试获得光照、电压的平均值

#sensor_reader.py
#读取日志文件代码
try:
    f = open("sensor_data.txt","r")
	avg, count=0, 0
	voltage = 0
	light = 0
	for line in f:
	    ls = line.split()
		count += 1
		avg += ls[2]
		voltage += ls[-1]
		light += ls[-2]
    print("平均温度值是:{:.2f}".format(avg/count))
	print("平均光照是:{:.2f}".format(light/count))
	print("平均voltage是:{:.2f}".format(voltage/count))
	f.close()

except:
    print("文件打开错误")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aFakeProgramer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值