Skip to main content

Edit docx with python

Project description

docx-editor

Release Build status codecov Commit activity License

Pure Python library for Word document track changes and comments, without requiring Microsoft Word.

Note: The PyPI package is named docx-editor because docx-edit was too similar to an existing package.

Features

  • Track Changes: Replace, delete, and insert text with revision tracking
  • Cross-Boundary Editing: Find and replace text spanning multiple XML elements and revision boundaries
  • Mixed-State Editing: Atomic decomposition for text spanning <w:ins>/<w:del> boundaries
  • Comments: Add, reply, resolve, and delete comments
  • Revision Management: List, accept, and reject tracked changes
  • Cross-Platform: Works on Linux, macOS, and Windows
  • No Dependencies: Only requires defusedxml for secure XML parsing

Installation

pip install docx-editor

Quick Start

from docx_editor import Document

with Document.open("contract.docx") as doc:
    # Track changes
    doc.replace("30 days", "60 days")
    doc.insert_after("Section 5", "New clause")
    doc.delete("obsolete text")

    # Comments
    doc.add_comment("Section 5", "Please review")

    # Revision management
    revisions = doc.list_revisions()
    doc.accept_revision(revision_id=1)

    doc.save()

Cross-Boundary Text Operations

Text in Word documents with tracked changes can span revision boundaries. docx-editor handles this transparently:

from docx_editor import Document

with Document.open("reviewed.docx") as doc:
    # Get visible text (inserted text included, deleted excluded)
    text = doc.get_visible_text()

    # Find text across element boundaries
    match = doc.find_text("Aim: To")
    if match and match.spans_boundary:
        print("Text spans a revision boundary")

    # Replace works even across revision boundaries
    doc.replace("Aim: To", "Goal: To")

    doc.save()

Claude Code Skill

This repo includes a skill for Claude Code that enables AI-assisted Word document editing.

This skill extends the original Anthropic docx skill which requires Claude to manually manipulate OOXML. Instead, this skill provides an interface (docx-editor) that handles all the complexity—Claude just calls simple Python methods like doc.replace() or doc.add_comment(), making document editing significantly faster and less error-prone.

Install the skill

# Install dependencies
pip install docx-editor python-docx

# Copy skill to Claude Code skills directory
git clone https://github.com/pablospe/docx-editor /tmp/docx-editor
mkdir -p ~/.claude/skills
cp -r /tmp/docx-editor/skills/docx ~/.claude/skills/
rm -rf /tmp/docx-editor

Once installed, Claude Code can help you edit Word documents with track changes, comments, and revisions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docx_editor-0.1.0.tar.gz (382.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docx_editor-0.1.0-py3-none-any.whl (40.8 kB view details)

Uploaded Python 3

File details

Details for the file docx_editor-0.1.0.tar.gz.

File metadata

  • Download URL: docx_editor-0.1.0.tar.gz
  • Upload date:
  • Size: 382.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for docx_editor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8855af8ab03cb17619ce65a2f563af6d29d7516d9570426bd2e01be6b4db116b
MD5 73d067119a5cd92677e69a0cf0092085
BLAKE2b-256 e297dd778cc45a03cbf4068c640708066db0ec87bb55bac1716fd00d98d80863

See more details on using hashes here.

File details

Details for the file docx_editor-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: docx_editor-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 40.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for docx_editor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c0eb2bea023eed1169e7a836134a657cf401506db3976df1f8e997cfe23a7f20
MD5 838eb05adc8cb65bbd667a8fc9b10e90
BLAKE2b-256 2b1119d3df4b4c0d65c6c93957e7aad547578d7d8ec6bb6ae6f8fd7b72fe6058

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page