python —— 真二
下面所示为xx套由公司职员随身佩戴的位置传感器采集的数据,文件名称为"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
...
第一列是传感器获取数据的时间,第二列是传感器的编号,第三列是传感器所在的楼层,
第四列是传感器所在的位置区域编号。
问题一. 读入sensor.txt文件中的数据,提取出传感器编号为earpa001的所有数据,将结果输出保存到"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
f = open('C:\\Users\\Administrator\\Desktop\\sensor.txt','r',encoding='utf-8')
fo = open('C:\\Users\\Administrator\\Desktop\\earpa001.txt','w')ls = f.readlines()
for line in ls:lt = line.strip('\n').split(',')if lt[1] == ' earpa001':fo.write('{},{},{},{}\n'.format(lt[0],lt[1],lt[2],lt[3]))f.close()
fo.close()
文件读取:
f.read():从文件中读入整个文件内容
f.readline():从文件中读入一行内容
f.readlines():从文件中读入所有行,以每行为元素形成一个列表
文件及打开方式:
<变量名> = open(<文件路径及文件名>,<打开模式>,<编码格式>)
其中打开模式:
r —— 只读,如果文件不存在,返回异常
w —— 覆盖写模式,文件不存在则创建,存在则完全覆盖源文件
a —— 追加写模式,文件不存在则创建,存在则在源文件最后追加内容
r+ —— 可读、可写,文件不存在也会报错,写操作时会覆盖
w+ —— 可读,可写,文件不存在先创建,会覆盖
问题二.读入"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次;
f = open('C:\\Users\\Administrator\\Desktop\\earpa001.txt','r',encoding='utf-8')
fo = open('C:\\Users\\Administrator\\Desktop\\earpa001_count.txt','w')ls = f.readlines()
d={}
for line in ls:lt = line.strip('\n').split(',')key = lt[2]+'-'+lt[3]d[key]=d.get(key,0)+1
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)
for k in ls:fo.write('{},{}\n'.format(k[0],k[1]))f.close()
fo.close()