天天看點

python學習:讀寫檔案和字典排序

 今天來做一個題目,有一個檔案,内容如下:

[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 

下面講下我的解題思路,首先把檔案内容讀入到一個清單,然後提取需要排序的第二列的字段值到另外一個清單裡面,2個清單組成一個字典,然後<b>對字典按照值來進行排序</b>,

下面來看看腳本吧,注釋寫的比較清晰了:

[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