python学习------csv文件排序

  需求:从xml文件中获取的数据生成了CSV文件。但CSV文件内容无规律,我们需要对CSV文件进行排序。

  实现:

    1.csv文件内容

# cat test.csv 
1|e|hunk
2|a|tom
3|d|jim
4|b|jack
5|c|lucy


    2.python 程序

# cat test.py 
#/usr/bin/evn python
# -*- coding: utf-8 -*-
import csv, operator
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def sort_csv(LDIR,csv_file,sort_file):
    data = csv.reader(open(LDIR+csv_file),delimiter='|')  
    sortedlist = sorted(data,key=lambda x:(x[0],x[1]),reverse=True)  
  
    with open(LDIR+sort_file, "wb") as f:  
        fileWriter = csv.writer(f, delimiter='|')  
        for row in sortedlist:  
            fileWriter.writerow(row)  
    f.close()
def main():
    sort_csv('/tmp/','test.csv','sort.csv')
if __name__=='__main__':
    main()

 

    3.生成排序后的文件

# cat sort.csv 
5|c|lucy
4|b|jack
3|d|jim
2|a|tom
1|e|hunk


  总结:

  关于“sorted(data,key=lambda x:(x[0],x[1]),reverse=True)”参数解释:

  参数reverse=True 表示降序排序

  参数reverse=False表示升序排序