MarkItDown 快速上手:用免费 Python 工具把 PDF、Word、Excel 转成 Markdown
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
MarkItDown 是一个用 Python 写的文档转 Markdown 轻量工具,覆盖 PDF、Word、Excel、PPT、HTML、音频和图片等常见办公与媒体格式,转换时保留标题、列表、表格和链接。它解决的痛点很直接:当你想把一大批非结构化文档喂给大模型或文本分析管道时,不必为每种格式各写一套解析器,也不必手动重排内容。
五分钟跑通第一次转换
先跑通,再理解原理。装好后,一条命令就能完成 PDF 转 Markdown,并用-o把结果写进文件:
markitdown report.pdf -o report.md不加-o时结果直接打印到终端,配合管道就能继续处理。要集成进 Python 代码,最小调用长这样:
from markitdown import MarkItDown md = MarkItDown() result = md.convert("report.xlsx") print(result.text_content)convert接受本地文件、远程地址或字节流,转好的 Markdown 从返回值的text_content里取。
安装与环境准备
运行要求 Python 3.10 起步,版本过低的解释器会直接报错。为避免依赖打架,建议先在虚拟环境里安装。
想要所有格式开箱即用,就带全量依赖安装:pip install 'markitdown[all]'。只处理少数格式时按需安装即可,比如pip install 'markitdown[pdf, docx]',装完的包体也更小。
想从源码跑的话,先克隆仓库 https://gitcode.com/GitHub_Trending/ma/markitdown ,再在仓库根目录执行pip install -e 'packages/markitdown[all]',这是可编辑安装,装的包直接指向本地这份代码,方便边改边试。
支持格式全景:从办公文档到压缩包
- 办公文档:PDF、Word(.docx)、PowerPoint(.pptx)
- 表格:Excel(.xlsx / .xls)、CSV、JSON、XML,Excel 转 Markdown 会保留行列结构
- 网页与笔记:HTML、EPUB、Jupyter Notebook(.ipynb)
- 媒体:图片(读取 EXIF 元数据、配合 OCR 提取文字)、音频(元数据与语音转写)、YouTube 链接
- 压缩包:ZIP(遍历内部文件逐个转换)
要强调的一点:输出不是拍平成纯文本。标题、列表、表格、链接都会尽量按 Markdown 语法保留,这样交给下游工具时结构信息还在。
进阶能力:LLM 配图、OCR 与云服务
插件机制默认关闭,先用markitdown --list-plugins看看装了哪些插件,转换时加-p参数才会真正启用。
- LLM 配图:构造
MarkItDown()时传入llm_client和llm_model,转 PPT 或图片时模型会为图生成文字描述并写进结果。适用于文档里大量无说明图的场景;注意客户端得你自己准备好(OpenAI 兼容接口均可)。
上图是 LLM 配图功能的测试样例图,转换后图片旁会附带模型生成的文字说明。
- OCR 插件:
markitdown-ocr负责 PDF、Word、PPT、Excel 中内嵌图片的文字识别,复用同一套 LLM 客户端,不引入新的机器学习依赖。没传客户端时 OCR 会被静默跳过,回落到内置转换器,详见 OCR 插件说明。 - 云服务:对接 Azure Document Intelligence 或 Content Understanding,对扫描件的结构化抽取更稳,但会产生云端 API 费用,按需开启。
转不出结果先查这三处
- 症状:某类文件转换报错或提示找不到对应转换器。原因:缺该格式的可选依赖。对策:补装对应组件,如
pip install 'markitdown[pdf]'。 - 症状:从管道读文件时识别不出类型。原因:流输入没有文件扩展名可供判断。对策:用
-x给扩展名提示、-c给字符集提示。 - 症状:转换结果结构失真。原因:源文件排版越复杂越容易丢结构。对策:先转一份样例抽查;复杂版式可考虑走云服务路径。要定位某个格式的处理逻辑,可以看 转换模块,目录下每个文件对应一类格式。
适用边界:它适合把大批非结构化文档变成干净的 Markdown,供 LLM 或检索管道消费;不适合要求高保真版式还原的场景。处理不可信文件时,先校验输入,并优先调用convert_local()这类更窄的接口而不是泛化的convert(),能减少不必要的文件与网络访问。
【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考