LangChain教程-、Langchain基础

一、环境准备

Free Spire.Doc for Python 是免费 Python 文档处理库,无需依赖 Microsoft Word,支持 Word 文档的创建、编辑、转换等操作,其中内置的 Markdown 解析能力,能高效实现 Markdown 到 Doc/Docx 格式的转换,且兼容常见的 Markdown 语法(标题、列表、图片、链接等)。

安装:

打开终端/命令提示符,执行以下pip安装命令:

pip install Spire.Doc.Free

二、基础实现:单篇 Markdown 转 Word

场景1:将 Markdown 文本直接转换为 Word

适用于 Markdown 内容较短、无需读取文件的场景,核心代码如下:

复制代码

from spire.doc import *

from spire.doc.common import *

1. 定义要转换的Markdown文本(涵盖常见语法)

markdown_text = """

一级标题:Markdown转Word测试

二级标题:功能演示

三级标题:基础语法支持

1. 段落与强调

这是一段普通段落,支持**粗体**、*斜体*、`行内代码`,以及超链接(https://www.google.com/)。

2. 列表

  • 无序列表项1

  • 无序列表项2

  • 子列表项

  1. 有序列表项1

  2. 有序列表项2

3. 代码块

```python

print("Hello, Markdown to Word!")

a = 1 + 2

```

"""

1. 将markdown文本写入md文档

markdown_path = "input.md"

with open(markdown_path, 'w', encoding='utf-8') as f:

f.write(markdown_text)

2. 创建Document对象

doc = Document()

3. 加载md文档

doc.LoadFromFile(markdown_path, FileFormat.Markdown)

4. 保存为Word文档(支持.doc和.docx格式)

output_path = "Markdown转Word.docx"

doc.SaveToFile(output_path, FileFormat.Docx)

5. 释放资源

doc.Close()

print(f"转换完成!Word文档已保存至:{output_path}")

复制代码

场景2:读取 Markdown 文件转换为 Word

适用于已有.md文件的场景(如test.md),代码更简洁:

复制代码

from spire.doc import Document

from spire.doc import FileFormat

1. 创建Document对象

doc = Document()

2. 直接加载Markdown文件(指定文件路径)

markdown_file_path = "test.md"

doc.LoadFromFile(markdown_file_path, FileFormat.Markdown)

3. 保存为Word文档

output_path = "Markdown转Word.docx"

doc.SaveToFile(output_path, FileFormat.Docx)

4. 释放资源

doc.Close()

print(f"文件转换完成!路径:{output_path}")

复制代码

代码关键说明:

Document():创建一个空的 Word 文档对象,是所有操作的核心载体;

LoadFromFile():加载 Markdown 文件,第二个参数 FileFormat.Markdown 指定解析格式;

SaveToFile():接收输出路径和文件格式(FileFormat.Docx/FileFormat.Doc),完成保存;

Close():释放文档资源,避免内存占用。

三、批量转换多个 Markdown 文件

Free Spire.Doc for Python 支持批量转换一个文件夹中的多个 Markdown 文档。

复制代码

import os

from spire.doc import Document

from spire.doc import FileFormat

1. 定义Markdown文件所在文件夹和输出文件夹

md_folder = "./markdown_files"

output_folder = "./word_files"

2. 创建输出文件夹(若不存在)

if not os.path.exists(output_folder):

os.makedirs(output_folder)

3. 遍历文件夹中的所有.md文件

for filename in os.listdir(md_folder):

if filename.endswith(".md"):

拼接文件路径

md_path = os.path.join(md_folder, filename)

生成输出Word文件名(替换后缀为.docx)

output_filename = os.path.splitext(filename)0 + ".docx"

output_path = os.path.join(output_folder, output_filename)

4. 转换逻辑

doc = Document()

doc.LoadFromFile(md_path, FileFormat.Markdown)

doc.SaveToFile(output_path, FileFormat.Docx)

doc.Close()

print(f"已转换:{filename} -> {output_filename}")

print("所有Markdown文件批量转换完成!")

复制代码

常见问题与注意事项

格式兼容问题:部分小众 Markdown 语法(如 Mermaid 流程图、LaTeX 公式)暂不支持,转换后可能显示异常,建议提前简化这类内容;

编码问题:若 Markdown 文件含中文,建议保存为 UTF-8 编码,避免转换后出现乱码;

免费版限制:Free Spire.Doc for Python 免费版对文档页数有限制,满足日常轻量使用。路冀瞪鬃

相关推荐
橙露16 小时前
夸克网盘 v.4.5.2.516 免更新绿色版,方便使用!
分享·网盘
广东程序猿小展20 小时前
《深海迷航2》风灵月影修改器下载分享 深海迷航2修改器及用法说明
分享
汤姆yu21 天前
基于python大数据的高校舆情监测系统的设计与实现
大数据·开发语言·python·分享·分析·舆情
广东程序猿小展23 天前
《生化危机2重制版》v2024.01.09十一项修改器
分享
boY039RmU3 个月前
jafeaalalalaflal卡拉拉啊
分享
FCJ97Lrv93 个月前
TypeScript入门指南:30分钟速成
分享
Ze3G90nYt3 个月前
DotNetPy:现代.NET 与 Python 互操作 实战指南
分享
ExC1dNtqz3 个月前
Redis命令处理机制源码探究
分享
cewIv5sa24 个月前
解决ArchLinux中Edge无法联网问题
分享
pFg0v4O7P4 个月前
CKKS 同态加密数学基础推导
分享