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())