MarkItDown 上手指南:把 20 种文件格式一键转成 Markdown 喂给大模型
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
做文档预处理的时候你肯定被折磨过:PDF 里的表格复制到文档里就全乱了,PPT 会议纪要只能一行行手敲,音频和网页更是没法统一处理。MarkItDown 就是为这个场景做的开源 Python 工具——把 PDF、Word、Excel、PPT、图片、音频、网页统统转成结构化 Markdown,直接就能喂给 LLM 或文本分析管线。
它到底能干什么
一句话定位:给大模型和文本分析管线喂"干净且保留结构"的 Markdown。标题、列表、表格、链接都会保留成 Markdown 语法,而不是拍平成纯文本。
- 办公文档全家桶:PDF / Word / Excel / PPT 转 Markdown,表格保留为 Markdown 表格
- 图片与音频:读取 EXIF 元数据,音频支持语音转文字
- 网页与 URL:HTML、RSS、Wikipedia、YouTube 都能直接转
- ZIP 文件:自动遍历包内文件逐个转换
- 插件体系:OCR、Azure 云服务解析按需挂载
跑起来:5 分钟看到效果
安装只要一条命令,装完立刻转一个文件试试:
pip install 'markitdown[all]' markitdown test.pdf > test.md打开test.md,标题层级、段落、表格都在。
💡 环境要求只有 Python 3.10+。如果只碰 PDF 和 Word,可以装更轻量的pip install 'markitdown[pdf, docx]',省下一大堆用不上的依赖。
核心用法
单文件转换,支持管道
# 存到文件 markitdown path-to-file.pdf -o document.md # 或者管道,方便串进其他命令 cat path-to-file.pdf | markitdown批量转一个目录
CLI 本身只吃单个文件,批量交给 shell:
mkdir -p md for f in *.pdf *.docx *.xlsx; do markitdown "$f" -o "md/${f%.*}.md" done💡 文件多的时候可以并行:for循环里加&后台跑,或者把文件列表喂给xargs -P4,几十个文件几分钟跑完。
Python API 集成
写进自己的流水线只需要几行:
from markitdown import MarkItDown md = MarkItDown(enable_plugins=False) result = md.convert("research_paper.pdf") print(result.markdown) # text_content 是老别名,新代码直接用 markdown要给 PPT 和图片加 LLM 生成的描述,传个llm_client和llm_model即可,比如 OpenAI 客户端 +gpt-4o。
挂插件和云服务
内置解析是离线方案,遇到复杂版面可以上插件:
markitdown --list-plugins # 看看装了哪些插件 markitdown --use-plugins scanned.pdf # 启用插件转换比如markitdown-ocr插件能用 LLM Vision 把 PDF/DOCX 里图片中的文字识别出来,不引入新的 ML 依赖,文档见 packages/markitdown-ocr/README.md。Azure Document Intelligence 也能接入:markitdown file.pdf -d -e "<endpoint>",扫描版文档效果明显更好。
避坑笔记
⚠️扫描版 PDF 是重灾区。纯图片、没有文本层的 PDF,离线转换基本提不出什么文字。两条路:装markitdown-ocr插件,或者走 Azure 云服务;别指望内置解析器能救场。
⚠️[all]不是免费的。它把音频转写、视频字幕这些重型依赖全装了,装得慢、体积大。只处理办公文档就按 extras 精确安装,依赖能少一大半。
⚠️服务环境里别裸用convert()。它为了通用,能吃本地路径、远程 URI 和字节流。如果你只读本地文件,用convert_local()更稳;输入路径来自外部用户时,先校验再转换。
最后
想自己写一个转换器插件,仓库里的 packages/markitdown-sample-plugin/ 是个能直接抄的模板;视频文件则只能走 Azure Content Understanding。总之挑一份你嫌麻烦的文档先跑一遍,比看十篇文档都管用。
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考