python 对文件进排序操作
本帖最后由 danieljcky 于 2013-10-23 16:49:12 编辑 RT,有一个文件为 a.txt
内容如下:
3.3677165 2.12453 6.3779565 3.66142
0.1574803 0 3.2677203 3.66142
3.2677165 0 6.3779565 3.66142
0.1574803 0 3.2677203 3.66142
3.2677165 0 6.3779565 3.66142
3.3677165 2.12453 6.3779565 3.66142
import pandas as pd
df = pd.read_csv('a.txt', sep=' ', header=None)
# sep是分隔符,从你的帖子看不出是空格还是制表符\t,暂时看作空格
# header 是指定哪一行做字段名,默认0,即第一行,None 表示没有字段名
df = df.sort(columns=[0], ascending=[1])
# columns 表示按哪些列排序,靠前的优先
# ascending 表示每列的升降序(和columns对应),0为降序,1为升序,如果只有一个,表示所有排序的列都是一样
# df.sort(columns=[1,2], ascending=[0,1]) 表示先按第二列降序,再按第三列升序排序
df.to_csv('b.txt', index=False, sep=' ', header=None, float_format='%f')
sorted_lines = sorted(open("test.data"), key=lambda l: float(l.split()[0]))
open("test.out", 'w').write("".join(sorted_lines))