Новичок в программировании, уже нашел много полезных тем, но не совсем то, что мне нужно.
У меня есть один текстовый файл, который выглядит так:
1 of 5000 DOCUMENTS
Copyright 2010 The Deal, L.L.C.
All Rights Reserved
Daily Deal/The Deal
January 12, 2010 Tuesday
HEADLINE: Cadbury slams Kraft bid
BODY:
On cue .....
......
body of article here
......
DEAL SIZE
$ 10-50 Billion
2 of 5000 DOCUMENTS
Copyright 2015 The Deal, L.L.C.
All Rights Reserved
The Deal Pipeline
September 17, 2015 Thursday
HEADLINE: Perrigo rejects formal offer from Mylan
BODY:
(and here again the body of this article)
DEAL SIZE
В качестве вывода я хотел бы просто ПРОСТО тело каждой статьи в новой строке (одна ячейка на тело статьи) в одном файле (у меня есть около 5000 статей для обработки, как это). Вывод будет 5000 строк и 1 столбец.
Из того, что я смог найти, кажется, что 're' будет лучшим решением. Таким образом, повторяющиеся ключевые слова - это ТЕЛО: и, возможно, ДОКУМЕНТЫ. Как извлечь только текст между этими ключевыми словами в новую строку в Excel для каждой статьи?
import re
inputtext = 'F:\text.txt'
re.split(r'\n(?=BODY:)', inputtext)
или как то так?
section = []
for line in open_file_object:
if line.startswith('BODY:'):
# new section
if section:
process_section(section)
section = [line]
else:
section.append(line)
if section:
process_section(section)
Я немного растерялся, где искать, заранее спасибо!
РЕДАКТИРОВАТЬ: Благодаря ewwink я в настоящее время здесь:
import re
articlesBody = None
with open('F:\CloudStation\Bocconi University\MSc. Thesis\\test folder\majortest.txt', 'r') as txt:
inputtext = txt.read()
articlesBody = re.findall(r'BODY:(.+?)\d\sDOCUMENTS', inputtext, re.S)
#print(articlesBody)
#print(type(articlesBody))
with open('result.csv', 'w') as csv:
for item in articlesBody:
item = item.replace('\n', ' ')
csv.write('"%s",' % item)