如何将N个排序文件合并为一个排序文件而不存储在内存中?



我有N个文件,它们由一个新换行符分隔。每个文件的行/行按字典顺序排序(行本身不需要排序)。例如:

Include any error messages n
Include details about your goal n
Describe expected and actual results n

如何合并所有多个文件,以便输出文件排序而不加载内存中的所有文件?

虽然这不是一个算法问题本身,但它确实让我想起了合并K排序链表的leetcode问题。在本例中,节点是文件中的一行。

尝试heapq.merge:

如果你有两个文件:

file1.txt:

aaa
aab
bbb
ooo

file2.txt:

ccc
ddd
zzz

:

from heapq import merge
files = ["file1.txt", "file2.txt"]
for m in merge(*map(open, files)):
print(m.strip())

打印:

aaa
aab
bbb
ccc
ddd
ooo
zzz

相关内容

  • 没有找到相关文章

最新更新