• Python学习笔记(数据处理)


    处理文件中数据

    (统计分数)

    看一下我们的文档里的数据:

    #-- scores.txt

    刘备 23 35 44 47 51

    关羽 60 77 68

    张飞 97 99 89 91

    诸葛亮 100

    1.先把文件读进来:

    f = file('scores.txt')

    2.取得文件中的数据。因为每一行都是一条学生成绩的记录,所以用readlines,把每一行分开,便于之后的数据处理:

    lines = f.readlines()

    f.close()

    提示:在程序中,经常使用print来查看数据的中间状态,可以便于你理解程序的运行。比如这里你可以print lines,看一下内容被存成了什么格式。

    3.对每一条数据进行处理。按照空格,把姓名、每次的成绩分割开:

    for line in lines:

       data = line.split()

    接下来的4、5两个步骤都是针对一条数据的处理,所以都是在for循环的内部。

    4.整个程序最核心的部分到了。如何把一个学生的几次成绩合并,并保存起来呢?我的做法是:对于每一条数据,都新建一个字符串,把学生的名字和算好的总成绩保存进去。最后再把这些字符串一起保存到文件中:

    sum = 0

    for score in data[1:]:

       sum += int(score)

    result = '%s : %d ' % (data[0], sum)

    这里几个要注意的点:

    对于每一行分割的数据,data[0]是姓名,data[1:]是所有成绩组成的列表。

    每次循环中,sum都要先清零。

    score是一个字符串,为了做计算,需要转成整数值int。

    result中,我加了一个制表符 和换行符 ,让输出的结果更好看些。

    5.得到一个学生的总成绩后,把它添加到一个list中。

    results.append(result)

    results需要在循环之前初始化results = []

    6.最后,全部成绩处理完毕后,把results中的内容保存至文件。因为results是一个字符串组成的list,这里我们直接用writelines方法:

    output = file('result.txt', 'w')

    output.writelines(results)

    outpus.close()

    大功告成,打开文件检验一下结果吧。

    以下是完整程序,把其中print前面的注释符号去掉,可以查看关键步骤的数据状态。不过因为字符编码的问题,list的中文可能会显示为你看不懂的字符。

    f = file('scores.txt')

    lines = f.readlines()

    #print lines

    f.close()

    results = []

    for line in lines:

       #print line

       data = line.split()

       #print data

       sum = 0

       for score in data[1:]:

           sum += int(score)

       result = '%s : %d ' % (data[0], sum)

       #print result

       results.append(result)

    #print results

    output = file('result.txt', 'w')

    output.writelines(results)

    output.close()

  • 相关阅读:
    elasticsearch 索引清理脚本及常用命令
    git 快速入门及常见用法
    第01章-成本,你真的算对过吗?
    windows mysql安装及常用命令
    centos7 systemctl配置开机自启动服务
    python pip手动安装二进制包
    centos7使用nginx+uwsgi部署python django项目
    python json.loads()、json.dumps()和json.dump()、json.load()区别
    比阿里云快2倍的InfluxDB集群,我们开源了
    为什么是InfluxDB | 写在《InfluxDB原理和实战》出版之际
  • 原文地址:https://www.cnblogs.com/seven000/p/6956248.html
Copyright © 2020-2023  润新知