博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习:读写文件和字典排序
阅读量:6081 次
发布时间:2019-06-20

本文共 1119 字,大约阅读时间需要 3 分钟。

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


 
  1. [root@Virtual python]# cat a.csv  源文件
  2. 2004-5-27,2,3,2,3 
  3. 2004-5-27,872,0,872,0 
  4. 2004-5-27,1872,0,872,0 
  5. 2004-5-27,3872,0,872,0 
  6. 2004-5-27,9872,0,872,0 
  7. 2004-5-29,1762,24,1762,24 
  8. 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]#

   脚本比较粗糙,如果有更好的法子,请不吝赐教。。。。
本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/1121550如需转载请自行联系原作者
world77
你可能感兴趣的文章
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>
ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
查看>>
一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!
查看>>
tomcat指定配置文件路径方法
查看>>
linux下查看各硬件型号
查看>>
epoll的lt和et模式的实验
查看>>
Flux OOM实例
查看>>
07-k8s-dns
查看>>
Android 中 ListView 分页加载数据
查看>>
oracle启动报错:ORA-00845: MEMORY_TARGET not supported on this system
查看>>
Go方法
查看>>
Dapper丶DapperExtention,以及AbpDapper之间的关系,
查看>>
搞IT的同学们,你们在哪个等级__那些年发过的帖子
查看>>
且谈语音搜索
查看>>
MySQL数据库导入导出常用命令
查看>>
低版本Samba无法挂载
查看>>
Telegraf+Influxdb+Grafana构建监控平台
查看>>