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中使用MarkItDown的基本用法如下:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)
如果需要使用大型语言模型进行图像描述,可以提供llm_client
和llm_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构建和运行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文件会使用相同的基名创建。