Hozooho 2020-06-22 12:14 采纳率: 0%
浏览 550

如何用python实现对TXT文件的处理

1.定义load_data函数,实现txt文件读取。
2.定义mapper函数,实现txt文件数据的解析,以字典形式返回数据。
3.定义reducer,实现月平均温度的计算
4.并调用上述定义的三个函数完成月平均气温的计算及展示

  • 写回答

1条回答 默认 最新

  • 何湾湾 2020-06-26 20:23
    关注

    def load_data(file_name: str) -> list: """ 读取文件中数据,以列表形式返回 ['20160101,00,霾,1024,67,-2,212,168,158', '20160101,01,霾,1024,70,-3,209,164,132', ...] :param file_name: 文件名 :return: 文件中的行数据,不包括首行,以列表形式返回 """ file = open(file_name, 'r', encoding='UTF-8') lines = [] next(file) for line in file: lines.append(line.strip('\n')) file.close() return linesdef mapper(lines: list) -> map: """ 解析列表中数据,以字典形式返回数据。{'201601':[-2,-3,...],'201602':[],...} :param lines:行数据,load_data函数的返回值 :return:解析后的行数据,以字典形式返回,key为月份,value为对应月份所有温度数据 """ m = {} lines_len = len(lines) for i in range(lines_len): j = lines[i].split(sep=',') if j[5] != 'N/A': if str(int(eval(j[0] + "/100"))) in m: m[str(int(eval(j[0] + "/100")))] += [int(j[5])] else: m[str(int(eval(j[0] + "/100")))] = [int(j[5])] return mdef reducer(m: map) -> map: """ 计算月平均温度 :param m: mapper函数的返回值 :return: 月平均气温,以map形式返回,key为月份,value为平均温度 """ ret = {} for a in range(201601, 201607): ret[str(a)] = (round(sum(m[str(a)]) / len(m[str(a)]), 2)) return retfile_name = 'beijing.txt'lines = load_data(file_name)m = mapper(lines)result = reducer(m)for key in result.keys(): print(key,result[key])

    评论

报告相同问题?

悬赏问题

  • ¥15 grbl或G代码单独获取速度或位置的命令事什么?
  • ¥15 uniapp地图组件show-location的方向箭偏差
  • ¥15 ntp客户端对时C语言
  • ¥15 python视觉识别调用鼠标宏驱动实现鼠标实时移动到目标人物中心,
  • ¥15 手机登录公司网站需要人脸识别,UC浏览器提示这样,有人知道解决方法吗
  • ¥15 《C程序设计语言》第4章第一个例题无法输出
  • ¥15 linux命令行中的一个问题
  • ¥15 如何让 python 正确发起 http2 请求?
  • ¥15 前端el-table表头显示不全
  • ¥30 如何实现用乐迪AT9S遥控器控制步进电机