0

Помогите, пожалуйста! Пишу здесь, так как всю голову сломал и не могу понять "почему?" происходит: Есть выполнение заданий на основе подключения библиотек fitz и re: 1. Python получает pdf-файл, читает его и выводит в значения; 2. Очищает от лишних символов и заносит в словарь - это для избежания обрывка текста; 3. В словаре находит значение и присваивает своё новое имя для дальнейшей работы. И тут есть проблема одна.

Все строки выполняет на отлично, но одну строку всегда отправляет в предыдущую

for i in range(text_blocks.count('\n')):
    a = text_blocks.index('\n')
    print('text blocks index:', str(a))
    card_var = text_blocks[b:a]
    card_var_new = ''.join(card_var)
    b = a
    print('card_var_new:', '\n'+card_var_new, str(i))
    text_blocks.pop(a)
    if re.search(name1,card_var_new): 
        temp[i] = card_var_new
        print(temp[i])
        continue
    elif re.search(name2,card_var_new): 
        temp[i] = card_var_new
        print(temp[i])
    <..>
    else:
        if temp.get(i-1) != None: 
            temp[i-1] += ' '+card_var_new
        elif temp.get(i-2) != None: 
            temp[i-2] += ' '+card_var_new
        <..>
        elif temp.get(i-7) != None: 
            temp[i-7] += ' '+card_var_new

for key in temp.keys():
    print('i -', key, temp[key])

В итоге, получается, что считывает всё правильно, но почему-то на основе else отправляет в предыдущее имя: введите сюда описание изображения

И именно с этой строкой проблемы и не могу понять почему - текст переписывал, имена менял: введите сюда описание изображения

Sanya124
  • 44
  • 4
  • elif re.search(re.escape(trade),card_var_new):, или - зачем тут регулярные выражения? - elif trade in card_var_new: – Wiktor Stribiżew May 21 '20 at 13:03
  • Простите, я не понял немного. search - ищет, а шаблон escape что делает? Избегает? – Sanya124 May 21 '20 at 13:18
  • Да, тут ЧНС. В trade есть скобки, а вы просто так используете эту переменную в качестве регулярного выражения. Зачем, если вы просто проверяете наличие подстроки в строке? – Wiktor Stribiżew May 21 '20 at 13:20
  • Я нашёл способ поиска строкой только через re. К сожалению, я так и не понял почему именно эта строка не находит – Sanya124 May 21 '20 at 13:26
  • Всё, понял почему он не находил! Спасибо огромное! Сработало :) – Sanya124 May 21 '20 at 13:27

0 Answers0