Как извлечь текст из существующего файла docx с помощью python-docx

Я пытаюсь использовать модуль python-docx ( pip install python-docx ), но, похоже, он очень запутан, так как в тестовом образце github repo используется функция opendocx но в readthedocs они используют класс Document . Даже они только показывают, как добавить текст в файл docx, не читающий существующий?

1-й ( opendocx ) не работает, может быть устаревшим. Во втором случае я пытался использовать:

 from docx import Document document = Document('test_doc.docx') print document.paragraphs 

Он вернул список объектов <docx.text.Paragraph object at 0x... >

Затем я сделал:

 for p in document.paragraphs: print p.text 

Он вернул весь текст, но недостатков было мало. Все URL-адреса (CTRL + CLICK, чтобы перейти к URL-адресу) не присутствовали в тексте на консоли.

В чем проблема? Почему URL-адреса отсутствуют?

Как я могу получить полный текст без повторения цикла (что-то вроде open().read() )

  • Загружаемый файл docx в Django
  • Чтение и запись файла .docx с помощью python
  • Номер страницы python-docx
  • Python: создайте «Оглавление» с помощью python-docx / lxml
  • Как перебирать все в документе python-docx?
  • 6 Solutions collect form web for “Как извлечь текст из существующего файла docx с помощью python-docx”

    вы можете попробовать это

     import docx def getText(filename): doc = docx.Document(filename) fullText = [] for para in doc.paragraphs: fullText.append(para.text) return '\n'.join(fullText) 

    Вы можете использовать python-docx2txt, который адаптирован из python-docx, но также может извлекать текст из ссылок, верхних и нижних колонтитулов. Он также может извлекать изображения.

    Существует два «поколения» python-docx. Начальное поколение закончилось версиями 0.2.x, а «новое» поколение началось с версии 3.0. Новое поколение – это новаторская, объектно-ориентированная переработка устаревшей версии. Здесь есть отдельный репозиторий .

    Функция opendocx () является частью устаревшего API. Документация предназначена для новой версии. У устаревшей версии нет документации, о которой можно было бы говорить.

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

    Без установки python-docx

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

    http://etienned.github.io/posts/extract-text-from-word-docx-simply/

    У меня была аналогичная проблема, поэтому я нашел обходное решение (удалять гиперссылки с помощью регулярных выражений, так что остается только тег абзаца). Я разместил это решение на https://github.com/python-openxml/python-docx/issues/85 BP

    вы можете попробовать это также

     from docx import Document document = Document('demo.docx') for para in document.paragraphs: print(para.text) 
    Python - лучший язык программирования в мире.