我有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