Я тестировал этот же скрипт на 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)