科学工具
科学工具让世界更美好
让世界更美好

MarkitDown:可以将PDF,PPT,word,Excel、图片、音频、html、csv 等转化成Markdown格式MarkitDown:可以将PDF,PPT,word,Excel、图片、音频、html、csv 等转化成Markdown格式

MarkItDown能将各种类型的文件转换为Markdown格式,支持多种文件类型,包括PDF、PowerPoint、Word、Excel、图片(EXIF元数据和OCR)、音频(EXIF元数据和语音转录)、HTML和基于文本的格式(如CSV、JSON、XML)。

安装

通过pip安装MarkItDown:

pip install markitdown

从源代码安装:

pip install -e .

命令行使用

在命令行中使用以下命令将文件转换为Markdown:

markitdown path-to-file.pdf > document.md

指定输出文件:

markitdown path-to-file.pdf -o document.md

通过管道传递内容:

cat path-to-file.pdf | markitdown

Python API

在Python中使用MarkItDown的基本用法如下:

from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)

如果需要使用大型语言模型进行图像描述,可以提供llm_clientllm_model

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)

Docker

使用Docker构建和运行MarkItDown:

docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md

批处理多个文件

以下示例展示如何一次性将多个文件转换为Markdown格式。脚本会处理目录中的所有支持的文件,然后创建相应的Markdown文件。

from markitdown import MarkItDown
from openai import OpenAI
import os

client = OpenAI(api_key="your-api-key-here")
md = MarkItDown(llm_client=client, llm_model="gpt-4o-2024-11-20")
supported_extensions = ['.pptx', '.docx', '.pdf', '.jpg', '.jpeg', '.png']
files_to_convert = [f for f in os.listdir('.') if f.lower().endswith(supported_extensions)]

for file in files_to_convert:
    print(f"\nConverting {file} ...")
    try:
        md_file = os.path.splitext(file)[0] + '.md'
        result = md.convert(file)
        with open(md_file, 'w') as f:
            f.write(result.text_content)
        print(f"Successfully converted {file} to {md_file}")
    except Exception as e:
        print(f"Error converting {file}: {str(e)}")

print("\nAll conversions completed!")

将脚本放在文件所在的目录中,安装所需的包(如openai),然后运行脚本:

python convert.py

原始文件不会被更改,新的Markdown文件会使用相同的基名创建。