python写代码 阅读以下题目,分别对应两个问题,实现以下功能: 下面所示为一套由海员随身佩戴的位置传感器采集的数据,其内容示例如下: 2016/5/31 0:05, vawelon001, 1, 1 2016/5/31 0:20, earpa001,3,4 2016/5/31 2:26, earpa001,2,1 2016/5/31 0:25, earpa002,4,2 2016/5/31 2:27, earpa004,5, 6 2016/5/31 0:09, vawelon002, 1, 1 2016/6/1 2:26, earpa003,7, 2 2016/6/13 7:26, earpa001,6,2 2016/6/31 10:05, vawelon002, 2, 1 第一列是传感器获取数据的时间,第二列是传感器的编号,第三列是传感器所在的位置区域编号,第四列是传感器所在的楼层。 问题1: 用python创建的“info.txt”文件,并将给出的数据输入并写入新创建的文件中,之后提取出传感器编号为earpa00的所有数据,将结果输出保存到“earpa001. txt”文件。输出文件格式要求:原数据文件中的每行记录写入新文件中,行尾无空格,无空行。参考格式如下: 2016/5/31 7:11, earpa001,2, 4 2016/5/31 8:02, earpa001,3, 4 2016/5/31 9:22 earpa001,3,4 问题2 :读入“earpa001. txt” 文件中的数据,统计earpa001对应的职员在各楼层和区域出现的次数,保存到“earpa001 _count. txt” 文件,每条记录一行,位置信息和出现的次数之间用英文半角逗号隔开,行尾无空格,无空行。参考格式如下。 2-5,1 1-3,4 含义如下: 第1行“2-5,1”中1-1表示2号区域的5楼,5表示出现5次; 第2行“1-3,4”中1-4表示1号区域的3楼,3表示出现3次;
时间: 2023-05-27 10:03:23 浏览: 90
问题1解答:
```
# 1.将数据写入info.txt文件中
with open("info.txt", "w") as f:
data = '''2016/5/31 0:05, vawelon001, 1, 1
2016/5/31 0:20, earpa001,3,4
2016/5/31 2:26, earpa001,2,1
2016/5/31 0:25, earpa002,4,2
2016/5/31 2:27, earpa004,5,6
2016/5/31 0:09, vawelon002,1,1
2016/6/1 2:26, earpa003,7,2
2016/6/13 7:26, earpa001,6,2
2016/6/31 10:05, vawelon002,2,1'''
# 将数据写入info.txt文件中
f.write(data)
# 2.提取传感器编号为earpa001的数据并写入earpa001.txt文件中
with open("info.txt", "r") as f1, open("earpa001.txt", "w") as f2:
for line in f1:
if "earpa001" in line:
f2.write(line)
```
问题2解答:
```
# 定义一个函数,用来统计数据
def count_data(file_name):
# 定义字典变量,用于存储统计结果
result = {}
with open(file_name, "r") as f:
for line in f:
# 去除行末的换行符
line = line.strip()
# 解析位置信息和出现次数
location, count = line.split(",")
location = tuple(map(int, location.split("-")))
count = int(count)
# 将统计结果存储到字典变量中
if location not in result:
result[location] = count
else:
result[location] += count
# 将统计结果写入earpa001_count.txt文件中
with open("earpa001_count.txt", "w") as f:
for location, count in result.items():
location_str = "{}-{}".format(location[0], location[1])
f.write("{},{}\n".format(location_str, count))
# 调用count_data()函数统计数据
count_data("earpa001.txt")
```