Проблема с поиском внутри XML-файла документа Word заключается в том, что текст может быть разбит на элементы по любому символу. Конечно, он будет разделен, если форматирование будет другим, например, как в Hello World . Но это может быть разделено в любой точке, и это действительно в OOXML. Таким образом, вы в конечном итоге будете иметь дело с XML, даже если форматирование не меняется в середине фразы!
<w:p w:rsidR="00C07F31" w:rsidRDefault="003F6D7A">
<w:r w:rsidRPr="003F6D7A">
<w:rPr>
<w:b />
</w:rPr>
<w:t>Hello</w:t>
</w:r>
<w:r>
<w:t xml:space="preserve">World.</w:t>
</w:r>
</w:p>
Конечно, вы можете загрузить его в дерево XML DOM (не уверен, что это будет в Python) и попросить получить текст только в виде строки, но вы можете получить множество других «тупиков» только потому, что OOXML спецификация составляет около 6000 страниц, и MS Word может написать много «материала», который вы не ожидаете. Таким образом, вы можете написать свою собственную библиотеку обработки документов.
Или вы можете попробовать использовать Aspose.Words .
Доступен в качестве продуктов .NET и Java. Оба могут быть использованы из Python. Один через COM Interop другой через JPype. См. Руководство программиста Aspose.Words, Использование Aspose.Words на других языках программирования (извините, я не могу опубликовать вторую ссылку, stackoverflow пока не позволяет мне).