Преобразование DOCX в HTML поднимает Python MemoryError - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть функция, которая преобразует DOCX в HTML и большой файл DOCX для преобразования.Проблема в том, что эта функция является частью более крупной программы, и преобразованный html анализируется впоследствии, поэтому я не могу позволить себе использовать другой конвертер, не влияя на остальную часть кода (который не нужен).Запуск на python 2.7.13, установленном на 32-битном, но переход на 64-битный также нежелателен.Это функция:

import logging
from ooxml import serialize
def trasnformDocxtoHtml(inputFile, outputFile):
    logging.basicConfig(filename='ooxml.log', level=logging.INFO)
    dfile = ooxml.read_from_file(inputFile)

    with open(outputFile,'w') as htmlFile:
        htmlFile.write( serialize.serialize(dfile.document))

и вот ошибка:

>>> import library
>>> library.trasnformDocxtoHtml(r'large_file.docx', 'output.html')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "library.py", line 9, in trasnformDocxtoHtml
    dfile = ooxml.read_from_file(inputFile)
  File "C:\Python27\lib\site-packages\ooxml\__init__.py", line 52, in read_from_file
    dfile.parse()
  File "C:\Python27\lib\site-packages\ooxml\docxfile.py", line 46, in parse
    self._doc = parse_from_file(self)
  File "C:\Python27\lib\site-packages\ooxml\parse.py", line 655, in parse_from_file
    document = parse_document(doc_content)
  File "C:\Python27\lib\site-packages\ooxml\parse.py", line 463, in parse_document
    document.elements.append(parse_table(document, elem))
  File "C:\Python27\lib\site-packages\ooxml\parse.py", line 436, in parse_table
    for p in tc.xpath('./w:p', namespaces=NAMESPACES):
  File "src\lxml\etree.pyx", line 1583, in lxml.etree._Element.xpath
MemoryError
no mem for new parser
MemoryError

Могу ли я как-нибудь увеличить буферную память в python?Или исправить функцию, не влияя на формат вывода html?

...