python学习:读写文件和字典排序
短信预约 -IT技能 免费直播动态提醒
今天来做一个题目,有一个文件,内容如下:
- [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
需求是对文件内容的第二列内容进行排序,排序之后如下显示:
- [root@Virtual python]# cat b.csv
- 2004-5-27,2,3,2,3
- 2004-5-27,872,0,872,0
- 2004-5-29,1762,24,1762,24
- 2004-5-27,1872,0,872,0
- 2004-5-28,2011,20,2011,20
- 2004-5-27,3872,0,872,0
- 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]#
#!/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]#
脚本比较粗糙,如果有更好的法子,请不吝赐教。。。。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341