Я работаю с объектным проектом класса Python.Одно имя метода get_text () анализирует и извлекает весь текст из файла XML и возвращает значение текста «text_variable», чтобы его можно было использовать в другом методе с классом.Внутри объекта Class есть функция с именем get_text.Он читает строку каждого файла XML, а затем извлекает весь текст.В этом методе я хотел сохранить (вернуть) значение текста под именем переменной 'text_variable', полученной из файлов XML (все эти входные файлы хранятся на моем компьютере в рабочем каталоге), чтобы я мог использовать его в другомметод в моей программе.
Метод 'background_summary (self)', использует выражение RegEx, ищет и извлекает предложения на основе поиска по ключевому слову / фразе с возвращенной переменной из предыдущего метода, 'text_variable' в качествепараметр.Тем не менее, в операторе if _name_=='_main_'
, когда я пытался напечатать значения возвращаемого text_variable, он не дает мне весь ожидаемый результат.Он печатает только одну строку из одного файла XML.Однако, когда я печатаю «текстовую переменную» внутри метода get_text(self)
, он выводит все выходные данные из каждого XML-файла.
Поэтому я хочу знать, какова вероятность того, почему яя не могу повторно использовать и вызвать мою переменную успешно, когда я запускаю свою программу.Программа не может извлечь весь текст из каждого XML-файла при вызове и получает только одну строку из первого XML-файла.Однако, когда я печатаю вывод text_variable в методе get_text (), я вижу весь текст;однако, поскольку значение не возвращается, я не могу использовать его внутри другого метода background_summary ().
CODE НИЖЕ
files = os.listdir(os.getcwd())
class SummaryGenerator(object):
def __init__(self,files):
self.files=files
def get_text(self):
for f in files:
with open(f,"r") as fh:
for line in fh:
soup=BS(line, "lxml")
tags=soup.find_all('p')
for t in tags:
info=''.join(t.text)
buf=io.StringIO(info)
if 'NOTICE TO APPELLANT' in buf.readlines():
break
else:
words=info
text_variable="".join(words)
self.text_variable=text_variable
return self.text_variable
def background_summary(self):
bg_list=[]
background_corpora = map(lambda x: x[0], re.findall('([^.]*?(respondent|filed a petition)[^)]*\))',self.text_variable, re.I))
for b in background_corpora:
bg_list.append(b)
bkg_string = "".join(str(x)for x in bg_list)
print('Background', bkg_string)
if __name__ == "__main__":
for f in files:
Summary = SummaryGenerator(f)
print(Summary.get_text())