微软开源MarkItDown:办公文档转Markdown,一行命令搞定

MarkItDown 是微软开发的一个 Python 工具,专门用于将各种文档(如 PDF、Word、PPT、图片等)转换为 Markdown 格式,方便大语言模型 (LLM) 或文本分析流程使用。
下面为你整理它的安装和基本使用方法。
安装前准备
-
• Python 版本:需要 Python 3.10 或更高版本。 -
• 虚拟环境(推荐):为了避免依赖冲突,建议在虚拟环境中安装。 -
• 标准 Python: python -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows -
• Anaconda: conda create -n markitdown python=3.12
conda activate markitdown
安装步骤
最简单的方式是通过 pip 安装。工具将依赖分成了不同的可选组,最方便的是安装所有功能的完整版:
pip install 'markitdown[all]'
如果你希望按需安装(例如只需要处理 PDF 和 Word 文件),可以用:
pip install 'markitdown[pdf, docx]'支持的可选依赖组有:
[pdf],[docx],[pptx],[xlsx],[outlook],[audio-transcription],[youtube-transcription]等。
基本使用方法
MarkItDown 提供两种主要使用方式:命令行 (CLI) 和 Python API。
1. 命令行使用
这是最简单直接的方法,转换后可以直接输出为 .md 文件。
-
• 转换文件并输出到屏幕: markitdown 你的文件.pdf -
• 转换文件并保存为 .md文件:markitdown 你的文件.pdf -o 输出文件.md -
• 通过管道处理内容: cat 你的文件.pdf | markitdown
2. 在 Python 代码中使用
如果你需要在脚本中处理,可以导入 MarkItDown 类。
基础用法示例:
from markitdown import MarkItDown
# 创建转换器实例(默认不开启插件)
md = MarkItDown(enable_plugins=False)
# 转换文件,结果对象的 text_content 属性即为 Markdown 文本
result = md.convert("测试表格.xlsx")
print(result.text_content)
# 保存到文件
with open("输出.md", "w", encoding="utf-8") as f:
f.write(result.text_content)
高级功能示例:使用大模型描述图片内容
from markitdown import MarkItDown
from openai import OpenAI
# 初始化 OpenAI 客户端(需要设置好 API Key 等)
client = OpenAI()
# 传入 LLM 客户端和模型,转换图片时自动生成图片描述
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("一张风景照.jpg")
print(result.text_content)
值得一提的要点
-
1. 功能覆盖:支持 PDF、PPT、Word、Excel、图片(含OCR)、音频、HTML、Youtube 链接、EPUB 等格式。 -
2. 插件支持:可通过插件扩展功能(如增强 OCR),启用插件需加 --use-plugins参数。 -
3. 重要变更:如果你从旧版本升级,注意 0.1.0版本有破坏性变更,主要是流式处理接口和转换器类接口的改动。 -
4. 获取帮助:运行 markitdown --help可查看所有命令行选项。
开始尝试
建议先在一个测试文件上试用,体验其转换效果:
# 假设你有一个 Word 文档
markitdown 我的文档.docx -o 输出.md
夜雨聆风