← Word (.docx): all libraries · Reader board

markitdown vs python-docx: which one reads more real-world Word (.docx) files?

markitdown 0.1.9 and python-docx 1.2.0 on the same 130 odd real-world files from Apache POI test files (bug reports, fuzzers, broken exporters). Measured, not opinion; re-tested by itself on every new PyPI release. Updated 06 November 2026.

More files readmarkitdown93 vs 88
Faster on this setpython-docx4.3 s vs 97.3 s total (23× faster)
Both read87only markitdown: 6 · only python-docx: 1

markitdown got text from more files: 93 vs 88 of 130. markitdown broke (error, hang or crash) on 1 files that python-docx read; python-docx broke on 0 files that markitdown read.

LibraryText from🔴 Fails where
the other reads
🟡 Empty where
the other reads
⏱ Hangs or
crashes
Median
ms/file
Total
seconds
markitdown 0.1.99310017497.3
python-docx 1.2.08806034.3

Files only markitdown reads (6)

60329.docxpython-docx: no text
Bug54771a.docxpython-docx: no text
Bug54771b.docxpython-docx: no text
Bug64561.docxpython-docx: no text
Bug66263-table.docxpython-docx: no text
shapes-with-text.docxpython-docx: no text

Files only python-docx reads (1)

ExternalEntityInText.docxmarkitdown: FileConversionException: File conversion failed after 1 attempts: - DocxConverter threw ExpatError with message: no element found: line 3, column 0

What this does not tell you

This compares not breaking: whether each library gets any text out of each file. It does not rank text quality (reading order, tables, headings), and speed is one GitHub-hosted runner, default settings, no OCR switched on. If you need structure for RAG, also look at the output on your own files.

How this is measured