import re import zipfile STYLEPATH = 'OEBPS/styles/stylesheet.css' fontPattern = "font-family: '(.*):(.*)';" def fixFeatures(p): items = [] for f in p.split("&"): partes = f.split("=") if len(partes) == 1: items.append(f'"{partes[0]}"') else: items.append(f'"{partes[0]}" {partes[1]}') return "font-feature-settings: "+", ".join(items)+";" def fixFont(p): return "font-family: '"+p.group(1)+"'; "+fixFeatures(p.group(2)) filename = 'dae.epub' zIn = zipfile.ZipFile(filename) zOut = zipfile.ZipFile('dae-out.epub', 'w') for file in zIn.infolist(): buff = zIn.read(file.filename) if file.filename == STYLEPATH: content = buff.decode('utf-8') fixedStyle = re.sub(fontPattern, fixFont, content) zOut.writestr(STYLEPATH, fixedStyle) else: zOut.writestr(file, buff) print(fixedStyle)