Как оптимизировать конвертацию из epub в docx?

Я пишу код, который должен конвертировать epub. Среда, в которой её запускаю, Google Colab. Сама по себе задачка не самая простая, но моя цель сохранить лишь текст и базовое форматирование (курсив, жирный).

def convert_epub_to_docx(epub_file, docx_file):
    # Открываем EPUB-файл
    book = epub.read_epub(epub_file)
    document = Document()

    # Перебираем элементы книги
    for item in book.get_items():
        if item.get_type() == ebooklib.ITEM_DOCUMENT:
            soup = BeautifulSoup(item.content, 'html.parser')
            for element in soup.find_all():
                if element.name == 'h1':
                    document.add_heading(element.get_text(), level=0)
                elif element.name == 'p':
                    doc_paragraph = document.add_paragraph()
                    # Перебор вложенных элементов абзаца
                    for sub in element.contents:
                        if hasattr(sub, 'name'):
                            if sub.name == 'strong':
                                run = doc_paragraph.add_run(sub.get_text())
                                run.bold = True
                            elif sub.name == 'em':
                                run = doc_paragraph.add_run(sub.get_text())
                                run.italic = True
                            else:
                                doc_paragraph.add_run(sub.get_text())
                        else:
                            # Если это простой текст
                            doc_paragraph.add_run(sub)
    document.save(docx_file)

Код неплохо справляется с небольшими файлами, но для файлов с большим объемом (тысячи страниц) он дико не оптимизирован. Есть варианты, как мне её оптимизировать (или вообще стоит поменять подход)? Буду очень благодарен, если поможете.


Ответы (0 шт):