我有一个程序可以将列表打印到文件中,但是我希望它们根据第一个单词进行排序,这样匹配的项目就会相互靠近。
例如,该文件可能包含:
Pizza 5
Taco 6
Pizza 4
Taco 8
我希望代码读取文件并对内容进行排序,以便顺序基于匹配的第一个单词,将类似内容写入文件:
Pizza 5
Pizza 4
Taco 8
Taco 6
任何帮助?
答案 0 :(得分:5)
您可以简单地阅读这些行,按字母顺序对它们进行排序并将它们写回同一个文件:
with open("myfile", "r+") as f:
lines = f.readlines()
lines.sort()
f.seek(0)
f.writelines(lines)
这假设文件适合RAM。如果没有,您需要实现某种合并排序。
答案 1 :(得分:0)
只需使用readlines()
,即将文件行读入列表并将sorted()
应用于该列表。
答案 2 :(得分:-2)
您可以创建list
,然后循环浏览sorted
列表以获得所需的结果:
L = []
with open("yourfile.txt", "r") as f:
for line in f:
L.append(line)
for i in sorted(L):
print i.strip()
输出:
Pizza 4
Pizza 5
Taco 6
Taco 8