Удаление изображений и таблиц, не относящихся к определенному заголовку, с помощью python-docxPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Удаление изображений и таблиц, не относящихся к определенному заголовку, с помощью python-docx

Сообщение Anonymous »

Мне нужно изменить много документов docx. Мне нужно удалить часть контента и оставить только соответствующий.
Все файлы docx имеют одинаковую структуру, мне нужно хранить текст, изображения и таблицы под определенными заголовками. Я пытаюсь использовать библиотеку python-docx.
Я пишу скрипт, который удаляет весь текст, который не находится под этими заголовками, но мне трудно удалять изображения и таблицы. .
Пока мой код выглядит так:

Код: Выделить всё

from docx import Document

def delete_paragraph(paragraph):
p = paragraph._element
p.getparent().remove(p)
p._p = p._element = None

def clean_doc(path_in: Path, path_out: Path, headings: list):
doc = Document(path_in)
keep_para = False
for para in doc.paragraphs:
if para.text in headings and para.style.name == 'Heading 3':
keep_para = True
elif para.style.name != 'Normal' and para.text not in headings:
keep_para = False
if not keep_para:
delete_paragraph(para)
doc.save(path_out)

headings = ['FIRST TITLE', 'THIRD TITLE', 'APPENDIX']
path_in = Path('path/to/file.docx')
path_out = Path('path/to/file2.docx')

clean_doc(path_in, path_out, headings)
Он удаляет весь текстовый контент, который не находится под нужными заголовками, но я не нашел способа удалить изображения и таблицы за пределами заголовков. Я читал документацию python-docx и боюсь, что, возможно, невозможно сделать то, что я хочу.
Я использую Python 3.12 в WSL (Windows 11, Ubuntu) . У меня есть доступ к Linux-машинам под управлением Ubuntu и Fedora.
¿Есть ли способ добиться того, чего я хочу, с помощью python-docx, другой библиотеки Python или любого другого программного обеспечения?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/791 ... python-doc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»