Как показать вывод из разных методов?
У меня есть метод, который извлекает текст из файла. А затем у меня есть отдельные методы для фильтрации строк из извлеченного текста.
Но теперь я хочу объединить раздельные методы. Чтобы я мог отображать строки фильтрации в текстовом поле.
Вот метод, который извлекает текст из файла:
class ExtractingTextFromFile:
def extract_text_from_image(self, filename):
self.text_factuur_verdi = []
pdf_file = wi(filename=filename, resolution=300)
all_images = pdf_file.convert('jpeg')
for image in all_images.sequence:
image = wi(image=image)
image = image.make_blob('jpeg')
image = Image.open(io.BytesIO(image))
text = pytesseract.image_to_string(image, lang='eng')
self.text_factuur_verdi.append(text)
return self.text_factuur_verdi
def __init__(self):
# class variables:
self.apples_royal_gala = 'Appels Royal Gala 13kg 60/65 Generica PL Klasse I'
self.ananas_crownless = 'Ananas Crownless 14kg 10 Sweet CR Klasse I'
self.peen_waspeen = 'Peen Waspeen 14x1lkg 200-400 Generica BE Klasse I'
self.tex_factuur_verdi = []
self.list_fruit = ['Appels', 'Ananas', 'Peen Waspeen',
'Tomaten Cherry', 'Sinaasappels',
'Watermeloenen', 'Rettich', 'Peren', 'Peen',
'Mandarijnen', 'Meloenen', 'Grapefruit', 'Rettich']
и затем у меня есть методы для извлечения подтекста из извлеченного текста:
class FilterText:
extractingText = ExtractingTextFromFile()
def __init__(self):
self.extracting_text_from_pdf = ExtractingTextFromFile()
def combine_filtered_text(self, file_name):
self.filter_verdi_total_number_fruit(self, file_name) + ' ' + self.filter_verdi_fruit_name(self, file_name)
def regex_fruit_cost(self, substr):
return r"(?<=" + substr + r").*?(?P<number>[0-9,.]*)\n"
def regex_verdi_total_number_fruit(self):
return r"(\d*(?:\.\d+)*)\s*)"
def filter_verdi_total_number_fruit(self, file_name):
self.extractingText.extract_text_from_image(file_name)
regex = r"(\d*(?:\.\d+)*)\s*\W+(?:" + '|'.join(re.escape(word)
for word in self.list_fruit) + ')'
return re.findall(regex, self.text_factuur_verdi[0])
def filter_verdi_fruit_name(self, file_name):
self.extractingText.extract_text_from_image(file_name)
regex = r"(?:\d*(?:\.\d+)*)\s*\W+(" + '|'.join(re.escape(word)
for word in self.list_fruit) + ')'
return re.findall(regex, self.text_factuur_verdi[0])
и вот извлеченный текст:
text ="[' \n\na)\n\n \n\nFactuur\nVerdi Import Schoolfruit\nFactuur nr. : 71201 Koopliedenweg 33\nDeb. nr. : 108636 2991 LN BARENDRECHT\nYour VAT nr. : NL851703884B01 Nederland\nFactuur datum : 10-12-21\nAantal Omschrijving Prijs Bedrag\nOrder number : 77553 Loading date : 09-12-21 Incoterm: : FOT\nYour ref. : SCHOOLFRUIT Delivery date :\nWK50\nD.C. Schoolfruit\n16 Watermeloenen Quetzali 16kg 4 IMPERIAL BR I € 7,70 € 123,20\n360 Watermeloenen Quetzali 16kg 4 IMPERIAL BR I € 7,70 € 2.772,00\n6 Watermeloenen Quetzali 16kg 4 IMPERIAL BR I € 7,/0 € 46,20\n75 Watermeloenen Quetzali 16kg 4 IMPERIAL BR I € 7,70 € 577,50\n9 Watermeloenen Quetzali 16kg 4 IMPERIAL BR I € 7,70 € 69,30\n688 Appels Royal Gala 13kg 60/65 Generica PL I € 5,07 € 3.488,16\n22 Sinaasappels Valencias 15kg 105 Elara ZAI € 6,25 € 137,50\n80 Sinaasappels Valencias 15kg 105 Elara ZAI € 6,25 € 500,00\n160 Sinaasappels Valencias 15kg 105 FVC ZAI € 6,25 € 1.000,00\n320 Sinaasappels Valencias 15kg 105 Generica ZAI € 6,25 € 2.000,00\n160 Sinaasappels Valencias 15kg 105 Noordhoek ZA I € 6,25 € 1.000,00\n61 Sinaasappels Valencias 15kg 105 Noordhoek ZA I € 6,25 € 381,25\nTotaal Colli Totaal Netto Btw Btw Bedrag Totaal Bedrag\n€ 12.095,11 1.088,56\nBetaling binnen 30 dagen\nAchterstand wordt gemeld bij de kredietverzekeringsmaatschappij\nVerDi Import BV ING Bank NV. Rotterdam IBAN number: NL17INGB0006959173 ~~\n\n \n\nKoopliedenweg 38, 2991 LN Barendrecht, The Netherlands SWIFT/BIC: INGBNL2A, VAT number: NL851703884B01 i\nTel, +31 (0}1 80 61 88 11, Fax +31 (0)1 8061 88 25 Chamber of Commerce Rotterdam no. 55424309 VerDi\n\nE-mail: sales@verdiimport.nl, www.verdiimport.nl Dutch law shall apply. The Rotterdam District Court shall have exclusive jurisdiction.\n\nrut ard wegetables\n\x0c']"
Итак, речь идет о том, как объединить
extract_text_from_image(extracted text)
filter_verdi_total_number_fruit(sub text from the extracted text)
filter_verdi_fruit_name(sub text from the extracted text)
так что я могу вызывать комбинированные методы следующим образом:
content = combined_methods()
Потому что я хочу вывести текст в поле tex. Чтобы вывод выглядел следующим образом:
number1 texfruit
number2 textfruit2
Так, но теперь я каждый раз вызываю параметр имя_файла в каждом методе.
Но в конце я загружаю файл, а затем извлеченный подтекст должен быть показан в текстовом поле.
Так можно ли это сделать с помощью декораторов?
Любое предложение будет полезным.