一个由微软开源的 Python 工具,用于将多种文件格式转换为 Markdown 格式

📚 Markitdown

由微软开源的 Python 工具,用于将多种文件格式转换为 Markdown 格式

支持:PDF、PowerPoint、Word、Excel、图像、音频、HTML、文本格式(CSV、JSON、XML)、ZIP 文件的转换。

它旨在提供一个简单且灵活的解决方案,以便在您的应用程序中轻松集成 Markdown 渲染功能。

🌟 核心功能

  • 多格式支持 : 一键转换 PDF/PPT/Word/Excel/图像/音频/HTML 等12+格式

  • 智能处理:

  • 图像 OCR文字识别 (支持中文扫描件)

  • 音频 语音转文字 (支持英文优先)

  • 集成 GPT-4o 生成图像描述

  • 开发者友好: 提供Python API及Docker部署方案

🚀 特性

  • 轻量级:小巧的库,易于集成。

  • 快速:高效的 Markdown 解析和渲染。

  • 可扩展:支持自定义插件和扩展功能。

  • 易于使用:简单的 API,快速上手。

🔧 典型应用场景

  • 文档归档: 批量转换Office文件为Markdown
  • 知识库构建: 整合OCR文本+语音转录内容
  • 自动化流程: 结合CI/CD实现文档发布流水线

🛠️ 快速安装

bash 复制代码
# 基础安装 (Python 3.10+)
pip install markitdown[all]

或从源码安装

bash 复制代码
git clone https://github.com/microsoft/markitdown
cd markitdown
pip install -e .

🛠️ 使用

📖 使用示例

命令行工具

bash 复制代码
# 转换PDF到Markdown
markitdown input.pdf -o output.md
bash 复制代码
# 管道操作
cat input.docx | markitdown > output.md
bash 复制代码
或者使用-o指定输出文件:
markitdown path-to-file.pdf -o document.md

可选依赖项

MarkItDown 有可选的依赖项用于激活各种文件格式。在本文档的前面,可以使用 all 选项安装了所有可选依赖项。当然,您也可以单独安装它们以获得更多的控制权。

例如:

c 复制代码
pip install 'markitdown[pdf, docx, pptx]'

将仅安装PDF、DOCX和PPTX文件所需的依赖项。

目前,以下可选依赖项可用:

  • all安装所有可选依赖项 pptx为PowerPoint文件安装依赖项
  • docx为Word文件安装依赖项
  • xlsx为Excel文件安装依赖项
  • xls为旧的Excel文件安装依赖项
  • pdf为PDF文件安装依赖项
  • outlook为 Outlook 消息安装依赖项
  • az-doc-intel安装 Azure 文档智能所需的依赖项
  • audio-transcription安装用于WAV和MP3文件音频转录的依赖项
  • youtube-transcription安装获取 YouTube 视频字幕所需的依赖项

插件

MarkItDown 还支持第三方插件。插件默认禁用。

以下操作可列出已安装的插件:

c 复制代码
markitdown --list-plugins

启用插件使用:

c 复制代码
markitdown --use-plugins path-to-file.pdf

要查找可用的插件,请在GitHub上搜索该标签#markitdown-plugin。

Azure 文档智能

要使用 Microsoft 文档智能进行转换:

c 复制代码
markitdown path-to-file.pdf -o document.md -d -e "<document_intelligence_endpoint>"

Python 应用程序编程接口

在 Python 中的基本用法:

c 复制代码
from markitdown import MarkItDown


md = MarkItDown(enable_plugins=False) # Set to True to enable plugins
result = md.convert("test.xlsx")
print(result.text_content)

Python中的文档智能转换:

c 复制代码
from markitdown import MarkItDown

md = MarkItDown(docintel_endpoint="<document_intelligence_endpoint>")
result = md.convert("test.pdf")
print(result.text_content)

要使用大语言模型进行图像描述,请提供 llm_client 和 llm_model:

c 复制代码
from markitdown import MarkItDown
from openai import OpenAI

client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("example.jpg")
print(result.text_content)

📚 运行测试和检查

导航到 MarkItDown 包:

c 复制代码
cd packages/markitdown

安装 hatch 在您的环境中并运行测试:

c 复制代码
pip install hatch  # Other ways of installing hatch: https://hatch.pypa.io/dev/install/
hatch shell
hatch test

(替代方案)使用已安装所有依赖项的Devcontainer:

c 复制代码
Reopen the project in Devcontainer and run:
hatch test

在提交 PR 之前运行预提交检查:pre-commit run --all-files

5、每日资源 在这里

💯 👉【我的更新汇总】

👉项目直达

关注我的CSDN博客

更多资源可以查看我的CSDN博客

相关推荐
chenbingjie_c2 分钟前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
Nuanyt7 分钟前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
吴卫斌10 分钟前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
2601_9679873736 分钟前
Python——入门级(定义功能def函数)
python·函数·可变参数·默认参数·关键字参数
超级架构师1 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
叼烟扛炮2 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
LMT流氓兔3 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真3 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
外收内放3 小时前
Python基础语法练习题(75)
开发语言·python·学习
starzy19904 小时前
Scala循环与判断:一切皆表达式的控制流
开发语言·人工智能·scala