乐于分享
好东西不私藏

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

微软开源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. 1. 功能覆盖:支持 PDF、PPT、Word、Excel、图片(含OCR)、音频、HTML、Youtube 链接、EPUB 等格式。
  2. 2. 插件支持:可通过插件扩展功能(如增强 OCR),启用插件需加 --use-plugins 参数。
  3. 3. 重要变更:如果你从旧版本升级,注意 0.1.0 版本有破坏性变更,主要是流式处理接口和转换器类接口的改动。
  4. 4. 获取帮助:运行 markitdown --help 可查看所有命令行选项。

开始尝试

建议先在一个测试文件上试用,体验其转换效果:

# 假设你有一个 Word 文档
markitdown 我的文档.docx -o 输出.md