#python #xml #text-parsing #python-docx
#python #xml #синтаксический анализ текста #python-docx
Вопрос:
Добрый день!
В настоящее время я пытаюсь прочитать текст из файла docx с помощью python-docx. xml проблемной части выглядит следующим образом:
<w:t xml:space=»сохранить»>Некоторый текст
<w:br />
больше текста
<w:br />в: <w:br />
немного больше текста
</w:t>
Поэтому при чтении его с помощью python-docx он просто не видит частей «больше текста» и «немного больше текста«. Я предполагаю, что это происходит потому, что каждая строка не оформлена с помощью <w:t> и </w: t>, но весь прогон также включает в себя разрывы строк.
Итак, я пишу код:
doc = docx.Document('File.docx')
for para in doc.paragraphs:
print(para.text)
Вывод:
Некоторый текст
Требуемый результат:
Немного текста
больше текста
немного больше текста
Кто-нибудь знает, как заставить это работать, используя python-docx или какую-либо другую библиотеку на python?
Спасибо.
Комментарии:
1. Каково происхождение проблемного файла .docx? Он сгенерирован каким-либо другим программным обеспечением или сделан вручную с использованием LibreOffice или Word или, возможно, GoogleDocs?
2. Дорогой @Arty Antonov, я создал образец файла docx, подобного этому, используя Word 2007 и Google Docs, и оба они — используя ваш код — успешно прочитали его. Не могли бы вы указать, как к проблемному файлу?
3. Привет @scanny, This .docx генерируется автоматически с помощью какого-то неизвестного мне программного обеспечения. При попытке отредактировать этот документ вручную с помощью Word 2007 вся XML-структура document.xml изменяется, и проблемная часть обычно оформляется с помощью <w:t> и </w: t>, поэтому python-docx может прочитать все это.
4. Привет @AvivYaniv, при попытке удалить конфиденциальную информацию из файла .docx вручную проблемная часть .xml исчезает. В любом случае, спасибо за ваше время.