如何对文件进行排序,以便排序的基础只是第一个单词?第一个单词不是固定长度。
我在尝试:
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()
答案 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
)。