我有一个200万行的文本文件,其中每行显示坐标和这些坐标处的电位值,例如<x> <y> <z> value
。我应该如何使用python脚本重新排序此文件,以便首先按x
坐标,然后按y
坐标,然后按z
坐标对数据进行排序。
格式:
1 2 1 value
1 8 6 value
4 3 2 value
等等......
所需格式:
1 1 1 value
2 1 1 value
3 1 1 value
等。
非常感谢提前!
答案 0 :(得分:1)
您可以将文件读入列表并对其进行排序,但由于尺寸的原因需要时间。例如:
with open(file, 'r') as f:
data = sorted(f.readlines(), key=lambda x: int(''.join(x.split()[:3])))
如果您要删除换行符,请改用f.read().splitlines()
。
答案 1 :(得分:0)
使用按键功能:
the_list.sort(key=lambda line: tuple(map(int, line.split()[:3])))
(如果您的x,y,z坐标不是整数,请将int
替换为float
)