Огромный текстовый файл данных
Я прочитал огромный файл кусками, используя python. Затем я применяю регулярное выражение к этому фрагменту. На основе тега идентификатора я хочу извлечь соответствующее значение. Из-за размера фрагмента данные отсутствуют на границах фрагмента.
Требования:
- Файл должен быть прочитан кусками.
- Размеры блоков должны быть меньше или равны 1 ГиБ.
Пример кода Python
identifier_pattern = re.compile(r'Identifier: (.*?)\n')
with open('huge_file', 'r') as f:
data_chunk = f.read(1024*1024*1024)
m = re.findall(identifier_pattern, data_chunk)
Примеры фрагментов данных
Хорошо: количество тегов соответствует количеству значений
Идентификатор: value
Идентификатор: value
Идентификатор: value
Идентификатор: value
Из-за размера фрагмента возникают различные проблемы с границами, перечисленные ниже. Третий идентификатор возвращает неполное значение "v" вместо "value". Следующий фрагмент содержит «alue». Это приводит к отсутствию данных после синтаксического анализа.
Плохо: значение идентификатора не заполнено
Идентификатор: value
Идентификатор: value
Идентификатор: v
Как вы решаете подобные проблемы с границами блоков?