GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Awesome Python
  • Submit a project
  • Sponsorship

This view

  • Original page
  • New address

GeezerVison is showing awesome-python.com — Python File Format Processing Libraries - Awesome Python

  • iPulse AI

    Open Agentic Investment Research Platform. Inspect deep multi-agent market forecasts and stock picks.

  • PyUiBuilder

    Build your Python GUIs like Canva using drag and drop. Export clean, editable Python code.

Listed in editorial order, grouped by use case. Click a column header to re-sort the whole list.

Press / to search. Tags open their category. Click a row for details.

Search and filter

Results

Row number Tags

Binary Formats 1 project

1 pyelftools File Format Processing 13,385,540 2,289 2026-11-02 Binary Formats File Format Processing Text & Documents →
Parsing and analyzing ELF files and DWARF debugging information.
eliben/github.com/eliben/pyelftools /2,289 stars /2026-11-02

File Conversion 3 projects

2 markitdown File Format Processing 18,609,816 194,958 2026-11-07 File Conversion File Format Processing Text & Documents →
Python tool for converting files and office documents to Markdown.
microsoft/github.com/microsoft/markitdown /194,958 stars /2026-11-07
3 pypandoc File Format Processing 4,460,504 1,156 2026-09-05 File Conversion File Format Processing Text & Documents →
A thin wrapper for pandoc, the universal document converter.
JessicaTegner/github.com/JessicaTegner/pypandoc /1,156 stars /2026-09-05
4 docling File Format Processing 3,916,746 70,455 2026-11-11 File Conversion File Format Processing Text & Documents →
Library for converting documents into structured data.
docling-project/github.com/docling-project/docling /70,455 stars /2026-11-11

Excel 2 projects

5 openpyxl File Format Processing 341,760,939 External — Excel File Format Processing Text & Documents →
A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
openpyxl.readthedocs.io/en/stable/
6 xlsxwriter File Format Processing 177,741,206 3,993 2026-10-28 Excel File Format Processing Text & Documents →
A Python module for creating Excel .xlsx files.
jmcnamara/github.com/jmcnamara/XlsxWriter /3,993 stars /2026-10-28

Word 1 project

7 python-docx File Format Processing 129,509,719 5,765 2025-06-16 Word File Format Processing Text & Documents →
Creates, reads, and updates Microsoft Word (.docx) files.
python-openxml/github.com/python-openxml/python-docx /5,765 stars /2025-06-16

PowerPoint 1 project

8 python-pptx File Format Processing 134,340,749 3,586 2024-08-07 PowerPoint File Format Processing Text & Documents →
Python library for creating and updating PowerPoint (.pptx) files.
scanny/github.com/scanny/python-pptx /3,586 stars /2024-08-07

PDF 4 projects

9 pypdf File Format Processing 183,939,754 10,298 2026-11-11 PDF File Format Processing Text & Documents →
A library capable of splitting, merging, cropping, and transforming PDF pages.
py-pdf/github.com/py-pdf/pypdf /10,298 stars /2026-11-11
10 pymupdf File Format Processing 145,377,352 11,115 2026-11-10 PDF File Format Processing Text & Documents →
A fast MuPDF-based library for extracting, rendering, and editing PDFs and other documents.
pymupdf/github.com/pymupdf/PyMuPDF /11,115 stars /2026-11-10
11 reportlab File Format Processing 82,144,859 External — PDF File Format Processing Text & Documents →
An open-source library for generating PDFs and graphics.
docs.reportlab.com/
12 pdfminer.six File Format Processing 73,558,224 7,049 2026-03-13 PDF File Format Processing Text & Documents →
A community-maintained fork of PDFMiner for extracting information from PDF documents.
pdfminer/github.com/pdfminer/pdfminer.six /7,049 stars /2026-03-13

HTML-to-PDF 1 project

13 weasyprint File Format Processing 41,219,652 9,781 2026-11-10 HTML-to-PDF File Format Processing Text & Documents →
A visual rendering engine for HTML and CSS that can export to PDF.
Kozea/github.com/Kozea/WeasyPrint /9,781 stars /2026-11-10

Markdown 3 projects

14 markdown-it-py File Format Processing 546,740,387 1,393 2026-11-10 Markdown File Format Processing Text & Documents →
Markdown parser with 100% CommonMark support, extensions, and syntax plugins.
executablebooks/github.com/executablebooks/markdown-it-py /1,393 stars /2026-11-10
15 markdown File Format Processing 118,595,220 4,260 2026-11-10 Markdown File Format Processing Text & Documents →
A Python implementation of John Gruber's Markdown.
Python-Markdown/github.com/Python-Markdown/markdown /4,260 stars /2026-11-10
16 mistune File Format Processing 70,561,038 3,084 2026-10-23 Markdown File Format Processing Text & Documents →
A fast yet powerful Python Markdown parser with renderers and plugins.
lepture/github.com/lepture/mistune /3,084 stars /2026-10-23

Data Formats 3 projects

17 tomllib File Format Processing Stdlib 78,173 2026-11-12 Data Formats File Format Processing Text & Documents Stdlib →
(Python standard library) Parse TOML files.
python/docs.python.org/3/library/tomllib.html /78,173 stars /2026-11-12
18 pyyaml File Format Processing 1,173,851,967 2,972 2026-10-07 Data Formats File Format Processing Text & Documents →
A full-featured YAML framework for Python.
yaml/github.com/yaml/pyyaml /2,972 stars /2026-10-07
19 tablib File Format Processing 5,614,235 4,760 2026-11-02 Data Formats File Format Processing Text & Documents →
A module for tabular datasets in XLS, CSV, JSON, YAML.
jazzband/github.com/jazzband/tablib /4,760 stars /2026-11-02

No projects match your search.

Try a broader term, or .

File Format Processing guide

pypdf is a pure-Python PDF library for splitting, merging, cropping, and transforming pages, and it adds passwords too. To merge files, append() each one to a PdfWriter and write it out. With no C dependency, it's easy to install, but it doesn't generate new PDFs. It reads text with page.extract_text(), while a scanned page needs OCR software.

pyelftools parses ELF files and DWARF debug info in pure Python. Pass an open file to ELFFile, its main entry point, and stay on the high-level API: its guide says to use the low-level structs at your own peril.

MarkItDown converts PDF, Word, Excel, PowerPoint, HTML, and more into Markdown for LLMs and text analysis. Its README says it may not be the best option for high-fidelity conversions that people read. Don't pass untrusted input straight to it, and when you only read local files, call convert_local() instead of convert(), which also fetches URLs.

Docling is for documents where layout matters: it understands page layout, reading order, and tables, and runs OCR on scanned PDFs. It converts each file into a DoclingDocument, which you export to Markdown.

pypandoc wraps pandoc, which converts between Markdown, Word, LaTeX, HTML, and many other formats in both directions. It needs pandoc on your machine, and the pypandoc_binary package includes it. Pass a path to convert_file(), or a string and its format to convert_text(). For output formats like DOCX and EPUB, pass an outputfile, since that's the only way to convert to them.

openpyxl reads and writes Excel workbooks, so it's the one to use when the file already exists. Install defusedxml when you open spreadsheets from other people, since openpyxl doesn't guard against XML attacks by default.

XlsxWriter can't read or modify existing files. In return, it supports more Excel features than the alternatives, and its files are close to what Excel itself writes.

python-docx works on .docx files, not the older .doc. Start from a document that holds your styles, headers, and footers, and open it with Document('template.docx'): python-docx can only use a style that the starting document defines.

python-pptx creates and updates PowerPoint files. A deck's look comes from its theme, slide master, and layouts, so open a template deck with Presentation('template.pptx'). Add slides from its layouts and fill their placeholders, which carry the template's formatting.

PyMuPDF is a high-performance library for extracting, converting, and editing PDFs and other documents, built on MuPDF, and it also renders pages to images. It's available under the AGPL or a commercial license. For reading text and editing pages without that condition, use pypdf or pdfminer.six.

ReportLab creates PDFs directly from Python, like reports generated on a web server, with charts and tables. Lay out documents with Platypus: create a document from a DocTemplate class and pass a list of flowables, such as paragraphs and tables, to its build() method.

pdfminer.six extracts text from a PDF's source, with the exact location, font, and color of each piece, but it can't write PDFs. The simplest start is extract_text().

WeasyPrint turns HTML and CSS into PDFs, like reports, invoices, and tickets, with a layout engine built for pagination instead of a browser engine. It runs no JavaScript. Call HTML(...).write_pdf(). If users supply the HTML or CSS, its docs say you'll need extra configuration against high memory use, endless renderings, and local file leaks.

markdown-it-py follows the CommonMark spec, and plugins add syntax or replace existing rules.

Python-Markdown implements John Gruber's original Markdown. It's not a CommonMark implementation, and its docs say to look elsewhere if you want one. Pick it for its extension API and bundled extensions, like tables, fenced code blocks, and a table of contents.

Mistune is a fast parser with renderers and plugins, compatible with "sane CommonMark rules".

tomllib comes with Python and parses TOML, but doesn't write it. With untrusted input, limit its size, since a malicious TOML string can use a lot of CPU and memory.

PyYAML parses and emits YAML. Load it with yaml.safe_load(), since yaml.load can call any Python function when the data comes from an untrusted source.

Tablib is a format-agnostic tabular dataset library. Dataset().load(fh) detects the format of the file you load, and export() writes the same data as CSV, JSON, or another format.

Markdown your users write can carry HTML, so give each parser its safe setting. With markdown-it-py, use the js-default preset, which its docs strongly recommend for user content in web apps. Python-Markdown doesn't sanitize its output, so run a sanitizer over the HTML. With Mistune, build your parser with mistune.create_markdown(), which escapes HTML, instead of mistune.html(), which doesn't.

Contribute

Know a project that belongs here?

Tell us what it does and why it stands out.

Submit a project Star the repository
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.