所以我有一个文本文件,我需要按字母顺序对行进行排序。示例输入:
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
答案 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 ...
将处理剩下的事情。