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