乐于分享
好东西不私藏

MarkItDown:微软开源的文档转 Markdown 神器

MarkItDown:微软开源的文档转 Markdown 神器
 

最近翻 GitHub Trending,发现微软开源了一个叫 MarkItDown 的工具,已经 12.5 万星了。试用了一下,确实好用,推荐给需要处理各种文档转 Markdown 的朋友。

MarkItDown 是什么

简单说,就是一个把各种文件转成 Markdown 的 Python 工具。由微软开源维护。

你可能会问:不就转个格式吗,有什么特别的?

关键是它支持的格式范围很广——PDF、Word、PPT、Excel、图片(EXIF + OCR)、音频(转文字)、HTML、CSV、JSON、XML,连 ZIP 压缩包都能递归处理。而且输出保留标题、列表、表格、链接等结构,不是简单扔出一堆纯文本。

为什么需要它

做 RAG(检索增强生成)或者 LLM 微调的人会懂:数据清洗是最耗时间的环节之一。各种格式的文件——扫描件 PDF、客户发的 Word、老板给的 PPT、表格密密麻麻的 Excel——要统一喂给大模型,必须先转成它认识的结构化文本。

MarkItDown 就是干这个的。它把预处理标准化了,一行命令搞定。

pip install 'markitdown[all]'
markitdown 报告.pdf > report.md

或者 Python 里用:

from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("report.docx")
print(result.text_content)

核心能力一览

格式支持情况
PDF✅ 提取文本 + 结构
Word (docx)✅ 标题/列表/表格全保留
PowerPoint (pptx)✅ 每页幻灯片内容提取
Excel (xlsx)✅ 工作表 + 表格数据
图片 (jpg/png)✅ EXIF 元数据 + OCR 文字
音频 (mp3/wav)✅ 语音转文字
HTML / CSV / JSON / XML✅ 原生支持
ZIP✅ 递归解压后处理

我看中的几个点

1. 为 LLM 场景而生

与 textract 等传统工具不同,MarkItDown 从设计上就瞄准了 LLM/RAG 场景。它输出的 Markdown 保留了文档结构——标题层级、列表缩进、表格格式、链接——这些语义信息对大模型理解文档非常重要。一段有结构的 Markdown 比纯文本好理解得多。

2. 多模态能力

图片 OCR 和音频转文字意味着它能处理更丰富的输入。比如一份包含扫描图表和录音会议的调研材料,用 MarkItDown 一次就能统一转成结构化文本,不需要多个工具拼接。

3. 简单,不折腾

pip install 就完事了。不需要配置、不需要 GPU、不需要注册 API。CLI 和 Python API 都提供了,适合嵌入到自动化管道中。

几个使用场景

  •  
  • RAG 数据预处理: 给知识库喂文档前,先过一遍 MarkItDown 转 Markdown,再切 chunk 做 embedding
  •  
  • 办公自动化: 把收到的各种附件统一转 Markdown,方便全文搜索或归档
  •  
  • 日志分析: 批量处理 ZIP 压缩的日志文件,递归提取
  •  
  • 内容迁移: 把旧的 Word/PDF 文档批量迁移到 Obsidian 等 Markdown 笔记系统

小结

MarkItDown 不是那种炫技的项目——它解决的是一个朴实但高频的问题:文档格式转换。微软把它开源出来,对 RAG 和 LLM 生态是个实实在在的补充。12.5 万星不是白给的。

如果你也在折腾知识库、RAG 或者文档自动化,值得一试。


 GitHub: microsoft/markitdown
 安装: pip install 'markitdown[all]'