传感器采集
题目一:
概述:
'''
考生文件夹下存在两个Python源文件,分别对应两个问题,请按照文件内说明修改代码,实现以下
功能:
下面所示为一套由公司职员随身佩戴的位置传感器采集的数据,文件名称为“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
…(略)
第一列是传感器获取数据的时间,第二列是传感器的编号,第三列是传感器所在的楼层,第四列是传感器所在的位置区域编号。
'''
'''
问题2 (10分) :在PY301-2. py文件中修改代码,读入“earpa001. txt” 文件中的数据,统i计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次;
'''
思路:
- 文件操作
'''sensor.txt文件和代码在一起'''
# 打开文件
fp = open(r'earpa001.txt')
fo = open(r'earpa001_count.txt', 'w')
- 信息分割处理
# 对文件进行处理 [:-1] split('\n') 会将最后一个换行进行
txt = fp.read().split('\n')[:-1]
3.遍历信息统计关键信息
d = {}
for i in txt:
tmp = i[-3:]
d[tmp] = d.get(tmp, 0) + 1
4.将结果列表化
ls = list(d.items())
5.将结果转为指定个数写入文件
for i in ls:
fo.write('{},{}\n'.format(i[0].replace(',', '-'), i[-1]))
- 释放资源
# 关闭文件释放资源
fp.close()
fo.close()
**总结**:
同上
代码如下:
# 打开文件
fp = open(r'sensor.txt')
fo = open(r'earpa001.txt', 'w')
# 字符分隔处理
# 打开文件
fp = open(r'earpa001.txt')
fo = open(r'earpa001_count.txt', 'w')
# 对文件进行处理 [:-1] split('\n') 会将最后一个换行进行
txt = fp.read().split('\n')[:-1]
# print(txt)
d = {}
for i in txt:
tmp = i[-3:]
d[tmp] = d.get(tmp, 0) + 1
# 将结果列表化
ls = list(d.items())
#将结果转为指定个数写入文件
for i in ls:
fo.write('{},{}\n'.format(i[0].replace(',', '-'), i[-1]))
fp.close()
fo.close()
相关代码和资源都会打包到下面的链接(另附一个份刷题笔记):
代码(直接用Python导入即可),软件,题库:
链接:https://pan.baidu.com/s/1WClgPe1D79_GKclR26LJdA
提取码:pjmm