加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱故事小小网_铜陵站长网 (http://www.0562zz.com/)- 视频终端、云渲染、应用安全、数据安全、安全管理!
当前位置: 首页 > 云计算 > 正文

如何借助Python处理文件中的数据?

发布时间:2022-07-19 11:47:35 所属栏目:云计算 来源:互联网
导读:跟大家分享的文章是如何利用Python处理文件中的数据?前面我们学习了读取文件和写入文件,写入文件的时候切记你是要用新的内容全部覆盖旧的内容还是要续写,否则一不小心你就有可能犯下错误,今天我们来讲一下文件中数据的处理。Python入门新手和正在Python
  跟大家分享的文章是如何利用Python处理文件中的数据?前面我们学习了读取文件和写入文件,写入文件的时候切记你是要用新的内容全部覆盖旧的内容还是要续写,否则一不小心你就有可能犯下错误,今天我们来讲一下文件中数据的处理。Python入门新手和正在Python学习的小伙伴快来看一看吧,希望能够对大家有所帮助 !
 
  前面我们学习了读取文件和写入文件,写入文件的时候切记你是要用新的内容全部覆盖旧的内容还是要续写,否则一不小心你就有可能犯下错误,忘记的同学再去回顾复习一下
 
  我们已经知道了如何读取和写入文件。有了这两个操作文件的方法,再加上对文件内容的处理,就能写一些小程序,解决不少日常的数据处理工作。
 
  比如我现在拿到一份文档,里面有某个班级里所有学生的平时作业成绩。因为每个人交作业的次数不一样,所以成绩的数目也不同,没交作业的时候就没有分。我现在需要统计每个学生的平时作业总得分。
 
  记得我小的时候,经常有同学被老师喊去做统计分数这种“苦力”。现在电脑普及了,再这么干就太弱了。用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 = '%st: %dn' % (data[0], sum)
  这里几个要注意的点:
 
  对于每一行分割的数据,data[0]是姓名,data[1:]是所有成绩组成的列表。
 
  每次循环中,sum都要先清零。
 
  score是一个字符串,为了做计算,需要转成整数值int。
 
  result中,我加了一个制表符t和换行符n,让输出的结果更好看些。
 
  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 t: %dn' % (data[0], sum)
 
  #print result
 
  results.append(result)
 
  #print results
 
  output = file('result.txt', 'w')
 
  output.writelines(results)
 
  output.close()
  恭喜你在Python的道路上又坚持了一天,这节课的内容相对来说比较难,不太好消化,尤其是对于前几节课没有练习的同学,这节课我们用到了简单的分割、文件读取、字符转化、加法运算、写入文件、创建新文件等内容,你可得好好练习以求理解了,加油!

(编辑:我爱故事小小网_铜陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读