如何按字母顺序对大文本文件进行排序?

时间:2014-04-07 01:48:07

标签: python sorting

所以我有一个文本文件,我需要按字母顺序对行进行排序。示例输入:

This is the first sentence
A sentence here as well
But how do I reorder them?

输出:

A sentence here as well
But how do I reorder them?
This is the first sentence

这就是:这个文件太大了,我没有足够的RAM来实际将它分成列表/数组。我试图使用Python的内置sorted()函数,并且该进程被杀死。

给你一个想法:

wc -l data
21788172 data

2 个答案:

答案 0 :(得分:5)

听起来你需要进行合并排序:将文件分成块,对每个块进行排序,然后将排序后的块合并在一起。见Python class to merge sorted files, how can this be improved?

答案 1 :(得分:1)

与Hugh推荐的相似(但不同之处在于这不是纯Python解决方案),您可以按文件对文件进行排序。例如,将文件分成26个其他文件 - A.txt,B.txt,C.txt等。分别对每个文件进行排序,然后将它们组合起来得到最终结果。

要记住的主要事情是,第一次通过源文件只是为了将行分成它们的第一个字母。只有在那之后你才能在每个文件中运行排序。一个简单的cat A.txt B.txt ...将处理剩下的事情。