用 Python 实现将长 Markdown 文档从二级标题开始拆分

以下是一个简单的Python脚本,它可以将Markdown文档按照二级标题(##)进行拆分,并保存到指定的输出路径。

import os

def split_markdown_by_headers(input_path, output_folder):
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 初始化变量
    current_file = None
    current_content = []

    # 读取输入文件
    with open(input_path, 'r', encoding='utf-8') as file:
        for line in file:
            # 检查是否是二级标题
            if line.startswith('## '):
                # 如果已经有打开的文件,先保存
                if current_file:
                    save_current_file(current_file, current_content, output_folder)
                    current_content = []  # 重置内容

                # 新的文件名是二级标题(去掉'## ')
                current_file = line.lstrip('# ').strip().replace(' ', '_') + '.md'
            
            # 将当前行添加到内容列表
            current_content.append(line)

    # 保存最后一个文件
    if current_file:
        save_current_file(current_file, current_content, output_folder)

def save_current_file(filename, content, folder):
    # 拼接完整的文件路径
    output_path = os.path.join(folder, filename)
    # 写入文件
    with open(output_path, 'w', encoding='utf-8') as file:
        file.writelines(content)

# 自定义输入路径
input_path = input("请输入Markdown文件的路径: ")
# 输出路径固定
output_path = 'output_md_files'

# 调用函数进行拆分
split_markdown_by_headers(input_path, output_path)

运行这段代码时,它会提示你输入Markdown文件的路径。然后,它会在当前目录下创建一个名为output_md_files的文件夹,并将拆分的Markdown文件保存到该文件夹中。每个文件以对应的二级标题命名。

如果是从三级代码开始拆分,那么代码和和之前的示例非常相似,唯一的变化是检查行是否以### 开头,这是Markdown中的三级标题格式。

if line.startswith('### '):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值