前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习:读写文件和字典排序

python学习:读写文件和字典排序

作者头像
py3study
发布2020-01-09 20:02:02
5450
发布2020-01-09 20:02:02
举报
文章被收录于专栏:python3python3

        今天来做一个题目,有一个文件,内容如下:

代码语言:javascript
复制
[root@Virtual python]# cat a.csv       源文件
2004-5-27,2,3,2,3 
2004-5-27,872,0,872,0 
2004-5-27,1872,0,872,0 
2004-5-27,3872,0,872,0 
2004-5-27,9872,0,872,0 
2004-5-29,1762,24,1762,24 
2004-5-28,2011,20,2011,20 

   需求是对文件内容的第二列内容进行排序,排序之后如下显示:

  1. [root@Virtual python]# cat b.csv 
  2. 2004-5-27,2,3,2,3 
  3. 2004-5-27,872,0,872,0 
  4. 2004-5-29,1762,24,1762,24 
  5. 2004-5-27,1872,0,872,0 
  6. 2004-5-28,2011,20,2011,20 
  7. 2004-5-27,3872,0,872,0 
  8. 2004-5-27,9872,0,872,0 

下面讲下我的解题思路,首先把文件内容读入到一个列表,然后提取需要排序的第二列的字段值到另外一个列表里面,2个列表组成一个字典,然后对字典按照值来进行排序

下面来看看脚本吧,注释写的比较清晰了:

[root@Virtual python]# cat xiecvs.py #!/usr/bin/env python f=open('a.csv') aa={} bb=[] k=[] for i in f.readlines():                 bb.append(i.split('\n'))                   把文件内容读入列表                 k.append(i.split(',')[1])                 吧需要拍下的列的内容加入到一个列表 for i in range(0,len(bb)):                 aa[bb[i][0]]=int(k[i])                   生成一个字典,键是文件内容,值是需要排序的内容 f.close() cc=sorted(aa.items(),key=lambda aa:aa[1])       对字典进行按照值来排序,返回值是个列表 g=open('b.csv','w+') for i in range(0,len(cc)):                 g.write(cc[i][0] + "\n")                  吧列表内容按照一定顺序写入新的文件 g.close() [root@Virtual python]#

   脚本比较粗糙,如果有更好的法子,请不吝赐教。。。。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档