二级Python综合应用(4)传感器统计

鸽了很久没写了,二级python也没报上,但是还是决定刷刷题来提升自己的敲代码水平,二级Python的最后一题还是蛮有意思的,于是决定写成blog留作记录。

题目

下面所示为一套由公司职员随身佩戴的位置传感器采集的数据,文件名为"sensor.txt",其内容示例如下:

2016/5/31 0:05, vawelon001,1,1
2016/5/31 0:20, earpa001,1,1
2016/5/31 2:26, earpa001,1,6

...(略)

第一列是传感器获取数据的时间,第二列是传感器的编号,第三列是传感器所在楼层,第四列是传感器所在位置区域编号。

1.在PY301_1.py文件中修改代码,读入sensor.txt文件中的数据,提取出传感器编号为arpa001的所有数据,将结果输出保存到“earpa001.txt”文件。
输出文件格式要求:原数据文件中的每行记录写入新文件中,行尾无空格,无空行。参考格式如下:  
2016/5/31 7:11, arpa001,2,4  
2016/5/31 8:02, arpa001,3,4  
2016/5/31 9:22, arpa001,3,4  
…(略)  

fi=open('sensor.txt','r')
fo=open('earpa001.txt','w')
txt=fi.readlines()
for line in txt:
    temp=line.strip().split(',')
    if temp[1].strip()=='earpa001':
        fo.write('{},{},{},{}\n'.format(temp[0],temp[1].strip(),temp[2],temp[3]))
fi.close()
fo.close()


2.在PY301_2.py文件中修改代码,读入“ earpa001.txt”文件中的数据,统计 earpa001对应的职员在各楼层和区域出现的次数,保存到“ earpa001_count.txt”文件,每条记录一行,位置信息和出现的次数之间用英文半角逗号隔开,行尾无空格,无空行。参考格式如下  
1-1,5  
1-4,3  
…(略)  
含义如下:第1行“1-1,5”中1-1表示1楼1号区域,5表示出现5次;第2行“1-4,3”中1-4表示1楼4号区域,3表示出现3次; 

fi=open('earpa001.txt','r')
fo=open('earpa001_count.txt','w')
txt=fi.readlines()
d = {}
for line in txt:
    temp=line.split(',')
    d['{}-{}'.format(temp[2],temp[3]).strip()]=d.get('{}-{}'.format(temp[2],temp[3]).strip(),0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 该语句用于排序
for line in ls:
    fo.write('{},{}\n'.format(line[0],line[1]))
fi.close()
fo.close()

总结:

开头读入结尾关(open(),close())

数据操作用列表(split(),strip())

统计频率用字典(d.get())

顺序输出先sort(list(),sort())

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值