使用Python按第一个单词对文件/行进行排序

时间:2015-02-27 06:17:38

标签: python

如何对文件进行排序,以便排序的基础只是第一个单词?第一个单词不是固定长度。

我在尝试:

f = open("temp", "r")
lines = f.readlines()
print lines
lines.sort()
f2 = open('out.txt', 'w')
f2.write(''.join(lines)) # Write a sequence of strings to a file
f2.close()
f.close()

2 个答案:

答案 0 :(得分:3)

要按每行中的第一个单词排序,您需要拆分行并将第一个单词用作排序中的键:

lines.sort(key=lambda a_line: a_line.split()[0])

答案 1 :(得分:2)

可以将lines.sort()替换为:

lines.sort(key=lambda x: x.split()[0] if len(x.split()) >0 else None)

也;任何可能的空白新行都需要key条件;否则你将面临错误(IndexError: list index out of range)。