本文共 1039 字,大约阅读时间需要 3 分钟。
python学习------csv文件排序
需求:从xml文件中获取的数据生成了CSV文件。但CSV文件内容无规律,我们需要对CSV文件进行排序。
实现:
1.csv文件内容
1 2 3 4 5 6 | # cat test.csv 1 |e|hunk 2 |a|tom 3 |d|jim 4 |b|jack 5 |c|lucy |
2.python 程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # 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.生成排序后的文件
1 2 3 4 5 6 | # 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表示升序排序
本文转自独弹古调 51CTO博客,原文链接:http://blog.51cto.com/hunkz/1845498,如需转载请自行联系原作者