Python二级考试-综合应用题(操作txt文件-传感器采集的数据)

前言:相信很多考过python二级或者是正在准备考python二级的小伙伴都应该清楚,综合应用题其实考的并不难,只是简单的相关操作,具体分为以下几点:

  1.文件的使用:文件打开,读写和关闭。

  2.数据的组织维度:一维数据和二维数据。

  3.一维数据的处理:表示,存储和处理。

  4.二维数据的处理:表示,存储和处理。

  5.采用csv格式对一二维数据文件的读写。

掌握基本数据类型的相关操作,文件读写,程序的控制结构,还有相关的库如jieba,wordclound等就能完成大多数的题目。

题目

 

问题1

题目解决思路:

1,打开txt文件,用readlines函数逐行读取文件内容,这时候返回的是一个列表。注意:文件打开地址以文件所在位置为准!

2,遍历列表,对每一个列表元素用split函数把元素用","分隔开,这时候返回的也是列表类型。

3,结合元素特点,可以看返回的列表元素中,第一个元素是" earpa001"就符合题目要求。

4,最后把提取的数据写入文件即可。

代码实现:

# !/usr/bin/env python
# -*- encoding:utf-8 -*-
# 作者:赖正华

def read_earpa():
    """读取传感器编号"""
    txt_earpa = open("C:\\WEXAM\\000000000000\\sensor.txt","r",encoding='utf-8')
    txt = txt_earpa.readlines()
    n = 0
    for i in txt:
        new_txt = i.split(',')
        if new_txt[1] == ' earpa001':
            strs = i
            n += 1
            write_NewEarpa(strs)
            print("第{}条,写入成功!".format(n))

    txt_earpa.close()
def write_NewEarpa(strs):
    """写入传感器编号,并写入新的txt文件"""
    with open("C:\\WEXAM\\000000000000\\earpa001.txt",'a+',encoding="utf-8") as files:
        files.write(strs)

if __name__ == "__main__":
    read_earpa()
    print("写入成功!")

问题2:

题目解决思路:

1,打开前面写入的文件,也是逐行读取文件,返回列表类型。注意:文件打开地址以文件所在位置为准!

2,新建一个字典,遍历列表,对列表中的每一个元素分别用strip函数去除"\n",再用split函数用","进行分割。

3,根据元素特点可构建特殊字典的键,再用get函数获取相应的值,即可完成题目要求(详细请看代码)。

4,把数据写入新的文件即可。

代码实现:

# !/usr/bin/env python
# -*- encoding:utf-8 -*-
# 作者:赖正华

def read_files():
    """读取文件"""
    txt = open("C:\\WEXAM\\000000000000\\earpa001.txt","r",encoding="utf-8")
    txts = txt.readlines()
    floor_dict = {}
    for i in txts:
        floors = i.strip('\n').split(',')
        keys = floors[2] + "-" + floors[3]
        floor_dict[keys] = floor_dict.get(keys,0) + 1
    print(floor_dict)
    for k,v in floor_dict.items():
        print(k,str(v))
        strs = k + ',' + str(v) + '\n'
        write_files(strs)
    txt.close()

def write_files(strs):
    """写入文件"""
    files = open("C:\\WEXAM\\000000000000\\earpa001_count.txt","a",encoding="utf-8")
    files.write(strs)
    files.close()
if __name__ == "__main__":
    read_files()
    print("读取成功!")

内容简短,实力有限,有表达不全或表达错误还请谅解,谢谢观看!

 

posted @ 2020-02-15 15:22  赖正华  阅读(678)  评论(0)    收藏  举报