Как извлечь текст из существующего файла 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() )

    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) 
      Interesting Posts

      Установка элементов в атрибуте .data на ноль неприятного поведения в scipy.sparse

      Как избежать повторного входа в мои аккаунты каждый раз, Selenium Python mac

      UnboundLocalError при использовании + =, но не списка добавления

      Количество способов разбиения числа на Python

      Выполнение нескольких вызовов с помощью asyncio и добавление результата в словарь

      петля над 2 списками, повторяя кратчайший до конца самого длинного

      Эффективное извлечение памяти перекрывающихся патчей из матрицы

      Tkinter TkMessageBox не закрывается после нажатия OK.

      Приоритет задач сельдерея

      Вложенные аргументы не компилируются

      (полуавтоматическая) генерация argparsers для функций

      Ошибка HTTP 403 с api_id при доступе к Картам Google

      bash / cygwin / $ PATH: Нужно ли мне перезагружаться, чтобы изменить $ PATH?

      pandas data frame – выбрать строки и очистить память?

      Python – регулярное выражение – разбиение строки перед словом

      Python - лучший язык программирования в мире.