Извлечение данных из большого текстового файла с использованием Python - PullRequest
0 голосов
/ 07 мая 2018

Для проекта мне нужно извлечь данные из разных источников. Одним из таких источников является большой (.txt) файл (~ 750 Мб). Я попробовал обычные методы разбора, но файл слишком большой и занимает слишком много времени. Решение, которое я нашел здесь, заключается в создании полнотекстового индекса с использованием библиотеки Whoosh. Я новичок в Python и новичок в полнотекстовом поиске. У вас есть идеи, как открыть файл за разумное время и как разработать схему? Мой файл имеет следующую структуру


ПОЛЕ НЕТ

% то, что я хочу извлечь%

ПОЛЕ НЕ ИНТЕРЕСНО

% что-то не интересное%

ПОЛЕ ТП

% что-то, что я хочу извлечь%

1 Ответ

0 голосов
/ 07 мая 2018

для скорости UP скрипта, мы будем использовать многопроцессорность, для извлечения данных вы должны использовать re.findall или re.search, но в этом сценарии я буду использовать re.search

from multiprocessing import Process
from multiprocessing import freeze_support
import re

def find():
   f = open('data.txt', 'r').readlines()
   for n in f:
     word = n.rstrip()
     f = re.seach(r'%(.*)%', word)
     field = f.group(1)
     print field


if __name__ == '__main__':
    freeze_support()
    p = Process(target=find())
    p.start()
...