Search and replace in .docx using Python
A simple PoC to get you going:
#!/usr/bin/env python2
import zipfile as zf
import StringIO as si
import sys
candidates = ["word/document.xml"]
sio = si.StringIO()
with zf.ZipFile(sio, "w", compression=zf.ZIP_DEFLATED) as zio:
with zf.ZipFile(sys.argv[1], "r") as za:
for infile in za.namelist():
indata = za.read(infile)
if infile in candidates:
indata = indata.replace("token", "replacement")
zio.writestr(infile, indata)
with open("modified_{}".format(sys.argv[1]), "w") as oufile:
oufile.write(sio.getvalue())