skillfed

docx2python

Extract content from docx files

docx2python v3.7.1 335.0K downloads/30d#7,483 on PyPI
Permissive license MIT Active released

What it is and what it does

docx2python reads Microsoft Word .docx files (which are ZIP archives containing XML) and exposes their content as Python objects. It extracts text, images, headers, footers, footnotes, endnotes, document properties, comments, and paragraph metadata—including styles (e.g., Heading 1, Subtitle), formatting runs (bold, italic, underline, color, size), and position within nested lists. Tables are normalized to n×m grids and can be identified without guessing. The package optionally converts formatting to HTML tags and can write extracted images to disk.

The library uses lxml to parse the underlying XML and exposes a DocxContent object with separate attributes for header, footer, body, footnotes, endnotes, and document-level properties. Paragraphs are flattened to a consistent depth and enriched with metadata (style, lineage, list position, runs with formatting). It supports both strict and superset Open Office XML namespaces and works with Python 3.10+.

Use it for:

  • Extract text and structure from Word documents for indexing, search, or content migration to other formats
  • Automate document processing pipelines that need to read .docx files and convert them to markdown, HTML, or database records
  • Parse Word documents to identify and extract headings, lists, and formatted text for document analysis or summarization
  • Batch extract images embedded in .docx files and save them to a directory for asset management
  • Build tools that read Word document properties (creator, modification date, etc.) for metadata extraction or audit trails

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Extracts text, images, headers, footers, footnotes, endnotes, comments, properties, and document structure from Microsoft Word .docx files into Python objects.

Yes. The package is actively maintained, has low install friction, carries no known vulnerabilities, uses a permissive MIT license, and solves a common problem (reading .docx files) with a well-structured API. It is suitable for production use in both open-source and commercial contexts. Install if you need to programmatically extract content from Word documents.

Install

docx2python on PyPI

pip

pip install docx2python

uv

uv add docx2python

poetry

poetry add docx2python

Installing docx2python

Before you install

Low install friction with a pure-Python wheel. Actively maintained with a release 8 days ago. Requires Python 3.10 or later and three runtime dependencies (lxml, paragraphs, typing-extensions), all common and lightweight.

License in practice

MIT license permits use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.

Quickstart

from docx2python import docx2python

with docx2python('path/to/file.docx') as docx_content:
    print(docx_content.text)
    print(docx_content.properties)
    print(docx_content.images)

Requires Python 3.10 or later; the .docx file must be a valid ZIP-based Office Open XML document.

Verify before relying

  • Whether the package handles corrupted or malformed .docx files gracefully
  • Performance characteristics on very large documents or batch processing scenarios
  • Extent of support for Word's advanced formatting features beyond those listed

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 3 — lxml, paragraphs, typing-extensions
Maintenance actively maintained — 8 days since the last release
First released
Downloads 334,965/month — #7,483 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: docx2python-3.7.1-py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Typing :: Typed

Tags

extract text from docxparse word documentsdocx to pythonread docx filesextract docx contentword document parserdocx image extraction
document-parsingoffice-formats

More Text Processing packages