python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python DOCX转Markdown

使用Python实现将DOCX转换为Markdown格式

作者:用户835629078051

本文以 Spire.Doc for Python 为例,介绍把 Word 文档转换为 Markdown 的方法,以及同样输出为纯文本的 PDF 转 Markdown、批量转换这几类操作,整个流程的产物都是文本文件,用编辑器打开即可核对结果

Markdown 以纯文本形式保存内容,结构标记轻量,既能被各种文档平台渲染,也能直接作为普通文本处理。在把已有文档接入文档站点、静态博客、代码仓库,或为大模型准备语料时,Markdown 往往是比 Word 更合适的中间格式:它便于版本管理、便于批量检索,也不依赖特定软件打开。

问题在于大量存量文档是 .docx 格式。手工打开、复制、重新排版成 Markdown,不仅费时,遇到几十上百个文件时几乎无法推进。

本文以 Spire.Doc for Python 为例,介绍把 Word 文档转换为 Markdown 的方法,以及同样输出为纯文本的 PDF 转 Markdown、批量转换这几类操作。整个流程的产物都是文本文件,用编辑器打开即可核对结果。

环境准备

安装 Spire.Doc 库:

pip install Spire.Doc

在脚本中引入模块:

from spire.doc import *
from spire.doc.common import *

将 Word 文档转换为 Markdown

核心操作只有两步:加载文档,然后以 FileFormat.Markdown 保存。

doc = Document()

# 加载 Word 文档
doc.LoadFromFile("Data/ToMarkdown.docx")

# 转换为 Markdown 格式
doc.SaveToFile("ToMarkdown_output.md", FileFormat.Markdown)

doc.Close()

FileFormat 枚举决定了输出格式,换成 Markdown 即可得到 .md 文件。段落会转换为其对应的 Markdown 结构,标题映射为 # 层级,正文保持为普通段落。

同一个 Document 对象也可以按需保存成其他格式,例如同时产出一份 docx 和一份 PDF:

doc.SaveToFile("output.docx", FileFormat.Docx)
doc.SaveToFile("output.pdf", FileFormat.PDF)

反过来,Markdown 文件也能被加载并另存为其他格式,LoadFromFile() 会自动识别 .md 后缀:

doc.LoadFromFile("Data/FromMarkdown.md")
doc.SaveToFile("FromMarkdown_docx.docx", FileFormat.Docx)

这里需要注意的是,转换的产物是纯文本,核对结果时无需打开 Word 或图片查看器,直接用文本编辑器查看 .md 文件内容即可,也便于放进版本控制里逐行比对差异。

将 PDF 文档转换为 Markdown

存量资料里除了 Word,还有大量 PDF。PDF 的转换走的是另一套接口:先构造一个 PdfToMarkdownConverter,传入源文件路径,再调用 ConvertToMarkdown() 输出。

from spire.pdf import *

inputFile = "DeleteImage.pdf"
outputFile = "out2.md"

# 用输入文件构造转换器
converter = PdfToMarkdownConverter(inputFile)

# 转换为 Markdown 并保存
converter.ConvertToMarkdown(outputFile)

转换行为通过 MarkdownOptions 属性调整。例如,如果只关心文字、不需要处理 PDF 里的图片,可以把 IgnoreImage 设为 True,跳过图片处理:

converter = PdfToMarkdownConverter(inputFile)

# 跳过对图片的处理
converter.MarkdownOptions.IgnoreImage = True

converter.ConvertToMarkdown(outputFile)

对于以文字为主的资料,跳过图片往往能让输出更干净,也能减少转换耗时。

批量转换多个文档

单文件转换写成函数之后,批量处理就只是加一个循环。下面的例子遍历指定目录下所有 .docx 文件,逐个转换为同名的 .md:

import os

input_folder = "documents"
output_folder = "markdown"

for filename in os.listdir(input_folder):
    if not filename.lower().endswith(".docx"):
        continue

    doc = Document()
    doc.LoadFromFile(os.path.join(input_folder, filename))

    md_name = os.path.splitext(filename)[0] + ".md"
    doc.SaveToFile(os.path.join(output_folder, md_name), FileFormat.Markdown)
    doc.Close()

保持输入输出文件名一致(只替换扩展名)便于追溯来源,也方便后续按文件名匹配原始文档。

实用提示

总结

本文介绍了用 Python 把文档转换为 Markdown 的方法:用 Document 加载 Word 文档后以 FileFormat.Markdown 保存,同一个对象还能按需另存为 docx、PDF 等格式;用 PdfToMarkdownConverter 配合 MarkdownOptions.IgnoreImage 处理 PDF;再用一个循环把整批文件转换完成。由于产物都是文本文件,结果核对和后续处理都可以用脚本完成,适合接入文档站点、语料整理这类批量流程。

到此这篇关于使用Python实现将DOCX转换为Markdown格式的文章就介绍到这了,更多相关Python DOCX转Markdown内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文