MCPcopy
hub / github.com/TheAlgorithms/Python / FileMerger

Class FileMerger

sorts/external_sort.py:89–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87
88
89class FileMerger:
90 def __init__(self, merge_strategy):
91 self.merge_strategy = merge_strategy
92
93 def merge(self, filenames, outfilename, buffer_size):
94 buffers = FilesArray(self.get_file_handles(filenames, buffer_size))
95 with open(outfilename, "w", buffer_size) as outfile:
96 while buffers.refresh():
97 min_index = self.merge_strategy.select(buffers.get_dict())
98 outfile.write(buffers.unshift(min_index))
99
100 def get_file_handles(self, filenames, buffer_size):
101 files = {}
102
103 for i in range(len(filenames)):
104 files[i] = open(filenames[i], "r", buffer_size) # noqa: UP015
105
106 return files
107
108
109class ExternalSort:

Callers 1

sortMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected