markitdown:5 分钟把办公文档变成可检索文本
markitdown5 分钟把办公文档变成可检索文本【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdownmarkitdown 是一个 Python 文档转换工具把 PPT、PDF、Excel、图片、音频等 20 多种格式转成 Markdown。它解决复制粘贴丢表格、LLM 读不了 Office 文件的问题适合做 RAG、批量整理文档的人。跑通后你会得到一份保留标题层级、表格和演讲者备注的 output.md可直接切片、检索。它解决了什么问题第一个坑在表格。PPT 和 Word 里的表格复制出来经常挤成一行行列关系全丢重新对齐比读原文还费劲。第二个坑在备注和层级。演讲者备注只能在 PowerPoint 里逐页点开标题层级复制出来全变普通段落还原会议纪要基本靠手敲。第三个坑是模型根本读不了 Office 文件。.pptx、.pdf 都是二进制人工重敲一份 40 页的材料成本直接劝退。手工整理的耗时随页数线性涨通用提取工具大多只给扁平文本层级和表格还得二次清理。markitdown 的做法是把结构直接变成标准 Markdown 语法转完就能喂给切片器。问题对上了先花 5 分钟把它跑起来。5 分钟跑起来前提Python 3.10 到 3.14。两步。# 虚拟环境隔离依赖避免污染系统包 python -m venv .venv source .venv/bin/activate # [all] 一次装齐 PDF、Office、音频等全部可选依赖 pip install markitdown[all]只有某一类文件的话可以只装对应 extra比如pip install markitdown[pdf]装得更快。# 把手头任意一个 PPT 转成 Markdown换成你的文件路径 markitdown presentation.pptx -o output.md # 顺手确认装好了会打印版本号 markitdown --version打开 output.md 核对三件事标题都变成 # 开头的行表格保留行列结构有备注的页尾多出一段 Notes。跑通了你会看到每页幻灯片一个 Slide number 注释分隔标题、表格、备注各就各位。接下来看它都能吃什么。功能全景输入/场景输出/效果前置条件备注PPTX / DOCX / XLSX标题、列表、表格、演讲者备注markitdown[all]或[pptx]、[docx]、[xlsx]备注按页追加在页尾PDF正文、表格、页结构[pdf]extra内置 pdfplumber扫描件输出空白需 OCR 插件图片 jpg / pngEXIF 元数据加 LLM 文字描述元数据需 exiftool描述需 OpenAI 兼容客户端不配客户端就只有元数据音频 wav / mp3 / m4a元数据 语音转写文本[audio-transcription]extramp3 需系统 ffmpeg转写默认英文 en-USHTML / CSV / JSON / EPUB结构化 MarkdownEPUB 保留章节标题基础依赖即可无需任何 extraZIP 压缩包逐个转换内部文件合并成一份基础依赖即可每个文件带 File 小标题差异化在两点。一是输出面向 LLM 消费标题层级、表格、链接都是标准 Markdown 语法切分chunking不用再处理格式。二是图片不是只留文件名——接一个视觉模型图里的形状、颜色、数据就能变成文字描述纯文本管线也看得懂视觉内容。结构保真是基本功下面两个亮点才是重点。亮点能力PPT 备注和页面结构怎么保住手工把 PPT 整理成文本表格挤成一行是常态备注区内容更是拿不到。markitdown 按幻灯片内的阅读顺序遍历文本框表格逐行转 Markdown 表格语法备注追加到该页末尾from markitdown import MarkItDown md MarkItDown() result md.convert(quarterly_report.pptx) print(result.markdown) # 每页以 !-- Slide number: N -- 开头转完grep -c Slide number output.md对一下页数备注齐全的 40 页 PPT 转完后### Notes:块一条不少0 条需要人工补录。备注提取逻辑packages/markitdown/src/markitdown/converters/_pptx_converter.pyif slide.has_notes_slide: notes_frame slide.notes_slide.notes_text_frame notes_text (notes_frame.text or ) if notes_frame is not None else if notes_text.strip(): md_content \n\n### Notes:\n notes_text让 LLM 看懂图片里的内容默认转图片只输出 EXIF 元数据图里的图表、截图内容模型一无所知。传入任意 OpenAI 兼容客户端后图片被 base64 编码、连同你的 prompt 发给视觉模型描述直接写进 Markdownfrom markitdown import MarkItDown from openai import OpenAI md MarkItDown( llm_clientOpenAI(), # 任意 OpenAI 兼容客户端 llm_modelgpt-4o, llm_prompt描述图中形状、颜色与数据内容, # 不传用默认提示词 ) print(md.convert(chart.jpg).markdown) # 描述写在 # Description: 下仓库里的测试图就是上图红圈、蓝方块加一段文字模型会描述出图里的 5bda1dd6 和红蓝两色0 人工补录。每张图一次 API 调用prompt 不传时用默认的 Write a detailed caption for this image.。电子文档到这就齐了扫描件这种硬骨头放到实战场景里说。实战场景会议纪要还原个人小批量谁来做拿到 1-3 份 PPT 要当天出纪要的工程师或运营。转换命令同上多一条核对命令# 统计有备注的页数与 PPT 实际备注页比对 grep -c ### Notes: out/meeting.md预期输出里的 Slide number 标记数与页数一致备注条数与源文件一致纪要素材可直接喂给 LLM 总结。批量转换培训资料谁来做文档负责人。情况培训目录下 50 份 PPT、20 份 Excel 分散在子目录单个文件坏了不能中断整批。用 API 循环加异常捕获【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

C++编译期数据结构实战:模板元编程与constexpr的现代应用

C++编译期数据结构实战:模板元编程与constexpr的现代应用

C 的模板元编程这些年被重新审视,很大一个原因是constexpr能力的爆发让“编译期数据结构”不再只是炫技,而是真的能在项目里解决实际问题。我最早接触这个概念是在一个需要维护几十种消息类型、每种又要绑定不同处理逻辑的模块里,一开始用运行…

2026/10/11 4:33:16 阅读更多 →
猫抓 cat-catch:点 3 下鼠标保存网页视频的浏览器资源嗅探扩展完整指南

猫抓 cat-catch:点 3 下鼠标保存网页视频的浏览器资源嗅探扩展完整指南

猫抓 cat-catch:点 3 下鼠标保存网页视频的浏览器资源嗅探扩展完整指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓&#xff0…

2026/10/11 4:33:16 阅读更多 →
二刷算法第一天:二分查找与双指针的底层思维拆解

二刷算法第一天:二分查找与双指针的底层思维拆解

标题里的“吃饭香”不是夸张,是我这段时间重刷算法题的真实状态。第一次过 704、27、977 这三道题的时候,我基本处于“抄一遍代码,第二天就忘”的阶段,边界条件稍微一改就全乱。到了二周目重新打开它们,才意识到这套训…

2026/10/11 4:33:16 阅读更多 →

最新新闻

高通CAMX NCS服务架构、初始化时序与踩坑指南

高通CAMX NCS服务架构、初始化时序与踩坑指南

最近在梳理高通Camx功能feature时,又把NCS服务这条主线翻了出来。很多人学CAMX,开口就是Pipeline、Node、Port,以为把这三个概念吃透就等于懂CAMX了。可一旦真去分析代码执行流,或者遇到Session申请不到节点、Flush命令卡住、多摄…

2026/10/11 5:19:39 阅读更多 →
死磕muduo网络库:从Reactor模式到多线程高并发服务端编程

死磕muduo网络库:从Reactor模式到多线程高并发服务端编程

1. 为什么我在学完基础C之后,转头死磕muduo网络库先聊点实在的。我学C大概用了两年多,语法、STL、智能指针、模板这些都能写,但一直有个说不出的憋屈感:写出来的程序好像只会“算数”,不会“干活”。直到我开始接触网络…

2026/10/11 5:19:39 阅读更多 →
泛微查询文档默认显示全部:改造思路与避坑指南

泛微查询文档默认显示全部:改造思路与避坑指南

你把知识管理查询文档改成默认显示全部之后,业务部门的第一反应大概率是“哦,可以了”,只有负责维护泛微系统的人才知道这件事没那么简单。最近我刚处理完一单这样的改造,需求描述就一句话:“知识管理-查询文档页面&am…

2026/10/11 5:19:39 阅读更多 →
训练营打卡全攻略:从目标设定到复盘迁移的完整执行框架

训练营打卡全攻略:从目标设定到复盘迁移的完整执行框架

1. 训练营打卡到底在练什么?先搞懂这套模式的设计逻辑1月25日那一期训练营,我给自己定了个规矩:不请假、不补卡、不发“打卡失败”的丧气话。每天睡前把当天的完成情况如实写下来,配上必要的数据,发到群里就算交作业。…

2026/10/11 5:19:39 阅读更多 →
个人微信API二次开发:如何处理并发请求导致的数据重复?

个人微信API二次开发:如何处理并发请求导致的数据重复?

在微信自动化项目中,有一种问题不太容易发现:同一份数据被处理了两次。例如,两条请求几乎同时到达,都判断某个客户还没有入库,随后分别执行新增操作,最终数据库出现两条重复记录。这类问题通常不是简单的查…

2026/10/11 5:19:38 阅读更多 →
动力总成悬置解耦计算与优化程序:原理、实现与实战避坑

动力总成悬置解耦计算与优化程序:原理、实现与实战避坑

做动力总成悬置解耦计算,最魔幻的事情不是算法写不出来,而是算出来不好用。某天同事跑过来跟我吐槽,说按书上能量解耦法做了个优化程序,解耦率都调到95%以上了,样车一上台架,怠速方向盘还是抖得不行。我第一个问题就问他:你优化里用的刚度是10Hz动刚度还是静刚度?橡胶主簧的安…

2026/10/11 5:18:38 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →