Life, half is memory, half is to continue.

 Python docx转Markdown

By Vincent. @2025.4.23 • 3.7K
 Python docx转Markdown

索引目录

脚本功能

安装

使用方法

用于将 Microsoft Word 文档(.docx)转换为 Markdown 格式,同时保留文档中的格式和图片。

from docx import Document
from PIL import Image
import os
from base64 import b64encode
from docx.shape import InlineShape

def docx_to_markdown(docx_path, output_dir):
    # 创建输出目录
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    # 创建 images 子目录
    images_dir = os.path.join(output_dir, 'images')
    if not os.path.exists(images_dir):
        os.makedirs(images_dir)
    
    # 打开 docx 文件
    doc = Document(docx_path)
    markdown_content = []
    
    # 处理每个段落
    for para in doc.paragraphs:
        # 提取文本
        text = para.text
        
        # 处理段落中的图片
        for run in para.runs:
            if run._element.drawing_lst:
                for drawing in run._element.drawing_lst:
                    # 获取图片关系 ID
                    rid = drawing.xpath('.//a:blip/@r:embed')[0]
                    image = doc.part.related_parts[rid]
                    
                    # 保存图片
                    image_filename = f'image_{len(os.listdir(images_dir))}.png'
                    image_path = os.path.join(images_dir, image_filename)
                    with open(image_path, 'wb') as f:
                        f.write(image.blob)
                    
                    # 添加 markdown 图片语法
                    text += f'\n![image](images/{image_filename})\n'
        
        # 添加到 markdown 内容
        markdown_content.append(text)
    
    # 写入 markdown 文件
    output_path = os.path.join(output_dir, 'output.md')
    with open(output_path, 'w', encoding='utf-8') as f:
        f.write('\n\n'.join(markdown_content))
    
    return output_path

# 使用示例
docx_path = '你的文档路径.docx'
output_dir = '输出目录路径'
markdown_file = docx_to_markdown(docx_path, output_dir)

脚本功能

在运行此脚本之前,请确保已安装以下软件:

安装

  1. 拷贝代码在的本地计算机。
  2. 使用以下命令安装所需的 Python 库:
    pip install python-docxPillow

使用方法

  1. 将您要转换的 .docx 文件放在项目目录中。
  2. 打开 docx_to_markdown.py 文件,并根据需要修改以下变量:
    docx_path = ‘你的文档路径.docx’
    output_dir = ‘输出目录路径’
扫码分享收藏
扫码分享收藏