Немного о том, почему вы не можете выполнять простую замену строк в docx - документ .docx - это Zip-архив в формате OpenXML: сначала вы должны его распаковать. Раньше я использовал zip
, чтобы распаковать docx, а затем искать текст, например, -
>>> import zipfile
>>> z = zipfile.ZipFile("yourDocInDocx.docx")
>>> "someText" in z.read("word/document.xml")
True
>>> "random other string" in z.read("word/document.xml")
False
>>> z.close()
Но позже я нашел эту превосходную библиотеку python для docx - Python-docx , которая решит вашу проблему.
# Import the module
from docx import *
# Open the .docx file
document = opendocx('yourDocInDocx.docx')
# Search returns true if found
search(document,'your search string')