#python #docx
Вопрос:
У меня есть очень большой файл docx. В нем около 400 страниц. Я конвертирую его в HTML, а затем добавляю к нему другой HTML, используя эту функцию.
def fn(txt, tag):
if tag.name != "h3":
return
t = re.sub(r"s{2,}", " ", tag.get_text(strip=True))
return txt in t
def append_html(html_string_new, html_string,temp_folder):
soup1 = BeautifulSoup(html_string, "html.parser")
soup2 = BeautifulSoup(html_string_new, "html.parser")
for li in soup2.select("h3 ol > li"):
h3_text = li.find_previous("h3").get_text(strip=True)
print(h3_text)
h3_soup1 = soup1.find(lambda t: fn(h3_text, t))
if not h3_soup1:
continue
h3_soup1.find_next("ol").insert(0, li)
full_html = (
'<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body>'
str(soup1)
"</body></html>"
)
full_html = full_html.replace("<p>","")
full_html = full_html.replace("</p>","")
pypandoc.convert_text(full_html, format="html", to='docx',
outputfile=os.path.join(temp_folder, "section2_concat.docx"))
А затем я добавляю этот файл docx к существующему файлу docx в системе с помощью docx compose. Проблема в том, что когда я открываю этот документ, в нем говорится, что не удается обновить дисплей из-за нехватки памяти. Я нажимаю «ОК», и затем документ кажется в порядке, за исключением того, что через несколько минут ошибка возникает снова. Я предполагаю, что это из-за Pypandoc из-за https://github.com/jgm/pandoc/issues/3169
Есть ли какая-либо альтернатива Pypandoc?