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

news/2024/9/19 17:46:57/ 标签: python, markdown, 笔记
markdown_views prism-atelier-sulphurpool-light">

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

python">import osdef split_markdown_by_headers(input_path, output_folder):# 确保输出文件夹存在if not os.path.exists(output_folder):os.makedirs(output_folder)# 初始化变量current_file = Nonecurrent_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中的三级标题格式。

python">if line.startswith('### '):

http://www.ppmy.cn/news/1527199.html

相关文章

如何快准稳 实现MySQL大表历史数据迁移?

历史迁移解决方案以微服务架构为基础,使用多种设计模式,如:单例、桥接、工厂、模板、策略等。其中涉及的核心技术有多线程、过滤器等,致力于解决MySQL大表迁移的问题,提供多种迁移模式,如:库到库…

明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败

明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败 win10、端口占用、port、netstat、used背景 曾在springboot中遇到过,新建spring cloud时又遇到这个问题,如果不从根本上解决,就需要改端口&…

uniapp点击跳转到对应位置

其实就是标签选择器 获取到对应标签所在的高度&#xff0c;然后用uni.pageScrollTo跳转&#xff0c;这是在正常页面上的跳转&#xff0c;scroll-view中更方便 <template><view class"product-page"><scroll-view scroll-y"true" class&quo…

c语言--力扣简单题目(回文链表)讲解

题目如下&#xff1a; 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为 回文链表。 如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true 示例 2&#xff1…

力扣刷题--3033. 修改矩阵【简单】

题目描述 给你一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix &#xff0c;新建一个下标从 0 开始、名为 answer 的矩阵。使 answer 与 matrix 相等&#xff0c;接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。 返回矩阵 answer 。 算法分析 利用max_element…

基于鸿蒙API10的RTSP播放器(四:沉浸式播放窗口)

前言&#xff1a; 典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条&#xff0c;其中状态栏和导航条&#xff0c;通常在沉浸式布局下称为避让区&#xff1b;避让区之外的区域称为安全区。 开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状…

Maven入门学习

maven是一款管理和构建java项目的工具。 1.概述 1.1安装 安装步骤: 1.1.1官网下载apache-maven-3.6.1-bin.zip&#xff0c;解压 apache-maven-3.6.1-bin.zip 。 1.1.2配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录。 <localRepository&g…

华雁智科前端面试题

1. var 变量的提升 题目&#xff1a; var a 1 function fun() {console.log(b)var b 2 } fun() console.log(a) 正确输出结果&#xff1a;undefined、1答错了&#xff0c;给一个大嘴巴子&#xff0c;错误答案输出结果为&#xff1a;2,1 此题主要考察 var 定义的变量&…

基于 PyQt5 和 OpenCV 进行图像处理操作的GUI工具初版

为了实现一个基于 PyQt5 和 OpenCV 的图形用户界面&#xff08;GUI&#xff09;&#xff0c;要求如下&#xff1a; 左边显示加载的图片。 中间提供各种对图片进行处理的操作方法&#xff08;如灰度化、模糊处理等&#xff09;。 右边显示处理后的效果图。 接下来我将详细讲解如…

Ajax 揭秘:异步 Web 交互的艺术

Ajax 揭秘&#xff1a;异步 Web 交互的艺术 一 . Ajax 的概述1.1 什么是 Ajax ?1.2 同步和异步的区别1.3 Ajax 的应用场景1.3.1 注册表单的用户名异步校验1.3.2 内容自动补全 二 . Ajax 的交互模型和传统交互模型的区别三 . Ajax 异步请求 axios3.1 axios 介绍3.1.1 使用步骤3…

三相可控整流电路 (三相半波,三相桥式)

目录 1. 三相半波整流电路 2. 三相桥式全控整流电路 三相可控整流电路利用三相交流电源&#xff0c;通过可控硅&#xff08;晶闸管&#xff09;将交流电整流为直流电。主要有两种常见类型&#xff1a;三相半波整流电路和三相桥式全控整流电路。 1. 三相半波整流电路 三相半波…

vue2-ssr从vue-cli搭建项目改造服务端渲染+打包上线部署

1.通过 vue-cli 创建 vue 项目 vue create 项目名称 2.进入项目安装vue服务端渲染插件vue-server-renderer npm install vue-server-renderer -S vue-server-renderer和vue必须匹配版本 vue-server-renderer依赖一些Node.js原生提供的api&#xff0c;因此需要配合Node.js使…

乔拓云模板助力,微信小程序快速上线无需愁备案

想要快速打造并上线自己的微信小程序吗&#xff1f;乔拓云平台是您的不二之选&#xff01;无需担心复杂的备案流程&#xff0c;乔拓云提供免费服务&#xff0c;远程协助您轻松完成微信小程序的备案工作。 只需简单几步&#xff0c;您的小程序就能闪亮登场&#xff1a;首先&…

Apache-wed服务器环境的安装

一。安装httpd并且开启httpd yum install httpd systemctl start httpd 二。关闭防火墙 systemctl stop firewall 三。常规配置wed服务 mkdir /www vim index.html&#xff08;里面写入自己的内容&#xff09; chmod 755 index.htm chmod 755 /www vim /etc/httpd/co…

[网络][CISCO]CISCO IOS升级

CISCO IOS升级-&#xff08;转&#xff09;2008-06-27 15:35IOS 升级 在介绍CISCO路由器IOS升级方法前&#xff0c;有必要对Cisco路由器的存储器的相关知识作以简单介绍。路由器与计算机相似&#xff0c;它也有内存和操作系统。在Cisco路由器中&#xff0c;其操作系统叫做互连…

机器学习的入门指南

机器学习的入门指南 机器学习&#xff08;Machine Learning, ML&#xff09;是人工智能&#xff08;AI&#xff09;领域中的一项核心技术&#xff0c;致力于通过数据和算法使计算机具备从经验中学习的能力。在当今的科技世界&#xff0c;机器学习被广泛应用于图像识别、语音识…

【C++】一次rustdesk-server编译记录

RustDesk Server 是一个开源的远程桌面解决方案&#xff0c;允许用户自托管自己的远程桌面服务器。该项目是免费且开源的&#xff0c;支持多种平台和环境。RustDesk Server 提供了 ID/Rendezvous 服务器和 Relay 服务器&#xff0c;以及一些 CLI 工具&#xff0c;方便用户进行远…

python-桌面软件自动化(一)(实战微信发消息)

什么是pywinauto pywinauto是一组用于自动化Microsoft Windows GUI的python模块。 最简单的是&#xff0c;它允许您将鼠标和键盘操作发送到窗口对话框和控件。 pywinauto安装和启动 1.安装pywinauto 在 Pycharm 底部的终端&#xff08;Terminal&#xff09;窗口中输入 pip …

026.(娱乐)魔改浏览器-任务栏图标右上角加提示徽章

一、目标&#xff1a; windows中&#xff0c;打开chromium&#xff0c;任务栏中会出现一个chromium的图标。我们的目标是给这个图标的右上角&#xff0c;加上"有1条新消息"的小提示图标&#xff0c;也叫徽章(badge)注意&#xff1a;本章节纯属娱乐&#xff0c;有需要…

车载软件架构 --- SOA设计与应用(上)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…