文本文件内容排序功能:
每行是一条记录,每行可以有多列,列间按预定义的分隔符分隔;
可以按单列或多列组合排序,每列的顺序可以设置为反序或者正序;
列的数据类型可以是字符串、整数、浮点数,比较排序时按指定的数据类型比较大小;
排序算法可以单线程执行(适用于小文件),也可以多线程执行(适用于大文件,分隔排序后再归并);
使用了如下技术要点:
命令行参数
面向对象
字符串解析
文件读取,写入
多线程、线程池、队列、线程同步
文件归并排序
命令行说明:
sort.py -i -o [-d ] [-c ] [-s ] [-t ]
-i 输入源文件名
-o 输出目标文件名,如果未指定,则结果覆盖到源文件
-d 可选项,文件文本行的列分隔符,默认是空格
-c 可选项,相关排序列信息,包括列号(从1开始,按出现顺序优先级排序)、数据类型(i:整数,f:浮点数,默认:字符串)、是否反序(r),
默认按第一列字符串类型正序(升序)排序
-s 可选项,源文件分段最大行数,如果不指定则单线程执行,否则多线程执行排序
-t 可选项,线程数,指定-s参数时生效,默认值:2
1