Совершенно новый для XML и модуля python -pptx. Я хочу удалить одну гиперссылку, присутствующую на каждой странице
Моя собственная попытка до сих пор заключалась в получении моих файлов, измените на zip
форматировать и разархивировать их в отдельные папки
Затем я нахожу следующий атрибут <a:hlinkClick r:id="RelId4">
и удаляю его, удаляя атрибут Relationship
в файле xml.rels
, который соответствует этот слайд.
Затем я распаковываю и меняю расширение на pptx, и это загружает штрафы. Затем я попытался повторить это в Python, чтобы я мог создать постоянную автоматизацию.
моя попытка:
from pathlib import Path
import zipfile as zf
from pptx import Presentation
import re
import xml.etree.ElementTree as ET
path = 'mypath'
ppts = [files for files in Path(path).glob('*.pptx')]
for file in ppts:
file.rename(file.with_suffix('.zip'))
zip_files = ppts = [files for files in Path(path).glob('*.zip')]
for zips in zip_files:
with zf.ZipFile(zips,'r') as zip_ref:
zip_ref.extractall(Path(path).joinpath('zipFiles',zips.stem))
Затем я выполняю дальнейшую фильтрацию и получаю xmls из папки rels и папки ppt / slide.
я застрял здесь, я могу прочитать xml с помощью модуля ElementTree
, но не могу найти соответствующий тег для удаления?
for file in normal_xmls:
tree = (ET.parse(file).getroot())
y = tree.findall('a')
print(y)
это ничего не дает, я пытался использовать модуль python -pptx, но .Action.Hyperlink
не кажется полной функцией, если я не понимаю API.