markitdown:把 PDF、Word、EPUB 等文档批量转 Markdown 的 Python 工具
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
markitdown 是 Python 写的文件转 Markdown 工具,命令行一条指令就能把 PDF、Word、EPUB、Excel、图片、音频转成 Markdown,替读者省掉逐格复制粘贴和手写的格式解析。
30 秒看懂 markitdown 怎么把文件转 Markdown
不用记任何概念:给它一个文件路径,它吐回一段 Markdown。最典型的用法是命令加重定向:
markitdown 发票.pdf > 发票.md跑完打开发票.md,标题和表格都还在:
# 发票 开票日期:2024-03-08 | 项目 | 金额 | |------|------| | 手冲咖啡 | ¥28 |扫描件、图片这类没有文字层的文件,它走 EXIF 元数据加视觉模型的路线,产出文字描述而不是空文件。
你的文件在不在清单里:markitdown 支持哪些格式
仓库测试目录 packages/markitdown/tests/test_files/ 里放的正是每种格式的真实样本,对照下面这张表就能对号入座:
| 文件类型 | 能不能转 | 需要的依赖组 |
|---|---|---|
| ✅ | [pdf] | |
| Word(.docx) | ✅ | [docx] |
| Excel(.xls / .xlsx) | ✅ | [xls]或[xlsx] |
| PPT(.pptx) | ✅ | [pptx] |
| EPUB | ✅ | 无,基础依赖即可 |
| HTML / CSV / JSON / XML | ✅ | 无 |
| 图片(JPG / PNG,抽 EXIF 元数据) | ✅ | 无;接多模态 LLM 后可再出画面描述 |
| 音频(WAV / MP3 转写) | ✅ | [audio-transcription](另需 ffmpeg) |
| Outlook 邮件(.msg) | ✅ | [outlook] |
| YouTube 链接 | ✅ | [youtube-transcription] |
| ZIP | ✅(逐个解压再转) | 无 |
这张图就是图片转换场景的测试素材:markitdown 能从中抽出 EXIF 元数据,配上 LLM 还能把画面写成文字——
最短安装路径:把 markitdown 装起来
先确认环境是 Python 3.10 及以上(python3 --version看一眼)。推荐一条命令把 PDF、Office、音频的依赖一次装齐,装完顺手验证 ⚡
pip install 'markitdown[all]' markitdown --version第二行能打出版本号就算装好。想用源码安装或 uv、conda 环境,把包来源换成 git 仓库即可,命令结构不变。
一个能直接抄的工作流:把 PDF 论文转 Markdown
输入是什么:仓库自带的论文 PDF packages/markitdown/tests/test_files/test.pdf(一篇讲多智能体框架 AutoGen 的英文论文),换成你自己的合同或研报也行。
跑什么:就一条命令:
markitdown test.pdf -o test.md出来长什么样:输出开头与仓库预期结果 expected_outputs/test.md 完全一致:
Introduction Large language models (LLMs) are becoming a crucial building block in developing powerful agents that utilize LLMs for reasoning, tool usage...下一步拿去干嘛:把test.md直接丢进 RAG 语料或向量化管道;要写进批处理脚本,用 Python 侧等价写法MarkItDown().convert("test.pdf").markdown,一行拿到字符串,套个文件列表循环即可。
参数只记这几个:markitdown 命令行常用参数
| 参数 | 什么时候用 | 例子 |
|---|---|---|
-o | 结果存文件,不打印到终端 | markitdown a.docx -o a.md |
-x | 管道输入、扩展名认不出格式 | cat a \| markitdown -x pdf |
-c | 文本转出来乱码,手动指定字符集 | markitdown a.txt -c UTF-8 |
-v | 确认装好的版本 | markitdown -v |
其余长尾参数(MIME 提示、插件开关、Azure 文档智能)用到时敲markitdown --help;所有参数定义就在 packages/markitdown/src/markitdown/main.py,读一遍也就百来行。
最可能卡住你的 3 个地方:markitdown 新手报错速查
- 现象:转 PDF/Word 时报错,提示缺依赖(
MissingDependencyException一类)。 原因:装的是裸markitdown,对应格式的可选依赖没装。 解法:重装成pip install 'markitdown[all]'。 - 现象:
pip install一开始就失败,提示 Requires-Python。 原因:环境 Python 低于 3.10。 解法:换 3.10+ 的解释器,uv 或 conda 拉一个 3.12 都行。 - 现象:
cat file | markitdown报无法识别格式。 原因:没有文件路径可看扩展名,它猜不出类型。 解法:补-x pdf这类扩展名提示。
该不该选它:markitdown 适合什么场景
如果你在搭"收集文档 → 转 Markdown → 入库/喂 LLM"的批量管道,且文件不能出内网,就选它;如果你要的是逐页还原 PDF 版式、逐像素可编辑的排版,别选它,那是专业 DTP 工具的活;如果你介于两者之间、只偶尔转两三个文件,先用在线工具应付,等文件量上来了再回来装它。
今晚就挑一份 PDF 跑一遍,看看你的文档库离 LLM 语料还差几步。
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考