Почему мой скрипт работает часами? Простое регулярное выражение в формате JSON - PullRequest
0 голосов
/ 21 мая 2019

Я тестировал этот же скрипт на 7 МБ текстовом файле.Я бегал быстро, однако, когда я запускаю его на 1,6 ГБ файле, он работает часами.Я, очевидно, не предсказывал, что это будет быстро, но я не думал, что это займет так много времени.

Очистка файла работает быстро, однако кажется, что он останавливается в цикле.Я не уверен, что понимание списка будет быстрее?

Псевдокод ОЧИСТКА ФАЙЛА Откройте файл и удалите \ n пробел через файл, используя шаблон регулярных выражений, чтобы разделить на совпадение.будет помещен в файл json. Поместите в формате json

pattern = re.compile('(:?(Senator|Mr|Ms|Dr)\s+([A-Z]{2,})\s*(\(.+?\))\s+(\(\d{2}:\d{2}\):)(.*?))(?=(Senator|Mr|Ms|Dr)\s+([A-Z]{2,}))')



with open('speech/speach.txt', 'r') as dirty_speech:
    text = dirty_speech.read()
    text = text.replace(r'\n', '')
    text = text.replace(r'\t', '')
    text = text.replace(r'\\', '')
    with open('speech_cleaned.txt', "w") as clean_speech:
        clean_speech.write(text)

clean_speech_text = open('speech_cleaned.txt').read()

list_name_speech = []


for m in re.finditer(pattern, clean_speech_text):
    # create a dictionary then append to list for the JSON
    entry = {'surname': m.group(3), 'speech': m.group(6)}
    list_name_speech.append(entry)



with open('politician_and_speech.json', mode='w') as feedsjson:
    json.dump(list_name_speech, feedsjson, indent=4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...