markdown笔记文件批量打上时间戳

news/2025/10/1 12:53:40/文章来源:https://www.cnblogs.com/zqingyang/p/19122365

附件:时间戳重命名程序

需求

给一个文件夹(包含子文件夹)下的所有.md文件重命名,要进行的工作是在最前面添加时间戳。

打上时间戳的笔记能够更好配合笔记管理、[[笔记方法_Zettelkasten (卡片盒笔记法)详解]]、[[知识库管理方法_P.A.R.A. 方法详解]]

例如Typora 笔记迁移 Obsidian 图片链接处理.md修改为20251001-Typora 笔记迁移 Obsidian 图片链接处理

思路

使用 Python 来实现这个批量重命名任务是最高效的方法。

目标分析 (Objective Analysis)

对指定文件夹(及其所有子文件夹)内的全部 .md 文件进行批量重命名,在文件名前添加其创建日期,格式为 YYYYMMDD-

核心逻辑:

  1. 遍历 (Traversal): 递归遍历目标文件夹。
  2. 筛选 (Filtering): 识别出后缀为 .md 的文件。
  3. 检查 (Checking): 判断文件是否已被重命名,避免重复操作。
  4. 读取元数据 (Metadata Reading): 获取文件的修改时间。
  5. 格式化 (Formatting): 将时间转换为 YYYYMMDD 格式的字符串。
  6. 执行重命名 (Renaming): 构建新文件名并执行重命名操作。

创建时间 (ctime on Windows): 当文件或文件夹被复制到新位置时,这个时间戳会更新为复制操作发生的时间。因此,它反映的是副本的创建时间,而不是原始文件的创建时间。

修改时间 (mtime): 这个时间戳记录的是文件内容最后一次被保存更改的时间。它通常在文件复制时保持不变,因此更能代表笔记的“最后编辑日期”。

实践

备份整个目标文件夹,打压缩拷贝该文件夹副本进行操作。

参考目录

|-- 转换
|   |-- rename_md.py
|   `-- 综合软件使用教程 # 目标文件夹
|       |-- Database

安装python,网上教程很多,不再赘述。

  1. 保存脚本: 将下面的代码保存为一个 .py 文件,例如 rename_md.py

  2. 运行脚本: 打开终端或命令行工具,进入你保存脚本的目录,然后运行它:

    python rename_md.py
    

image

  1. 检查结果: 脚本会打印出每一个文件的重命名过程。操作完成后,你可以去文件夹中查看结果。
    image

代码

import os
import sys
import datetime
import redef batch_rename_md_files(root_folder):"""递归地为指定文件夹及其子文件夹下的所有 .md 文件名添加其“最后修改日期”前缀。格式: '笔记.md' -> '20251001-笔记.md'"""print(f"\n开始扫描文件夹: '{root_folder}'")renamed_count = 0scanned_count = 0for dirpath, _, filenames in os.walk(root_folder):for filename in filenames:if filename.endswith('.md'):scanned_count += 1if re.match(r'^\d{8}-', filename):print(f"-> 跳过 (已是目标格式): {filename}")continueold_filepath = os.path.join(dirpath, filename)try:# --- 主要修改点 ---# 4. 读取文件的“最后修改日期” (mtime) 而不是“创建日期” (ctime)modification_timestamp = os.path.getmtime(old_filepath)modification_date = datetime.datetime.fromtimestamp(modification_timestamp)# --- 修改结束 ---# 5. 生成 'YYYYMMDD-' 格式的日期前缀date_prefix = modification_date.strftime('%Y%m%d')# 6. 构建新文件名并执行重命名new_filename = f"{date_prefix}-{filename}"new_filepath = os.path.join(dirpath, new_filename)os.rename(old_filepath, new_filepath)print(f"✅ 重命名: '{filename}' -> '{new_filename}'")renamed_count += 1except Exception as e:print(f"❌ 处理 '{filename}' 时发生错误: {e}")print("\n--- 操作摘要 ---")print(f"共扫描到 {scanned_count} 个 .md 文件。")print(f"成功重命名 {renamed_count} 个文件。")# --- 主程序入口 (与上一版相同) ---
if __name__ == "__main__":target_folder = input("请输入目标文件夹的绝对路径并按 Enter: ")target_folder = target_folder.strip().strip('"')if os.path.isdir(target_folder):print("-" * 60)print(f"目标文件夹: {target_folder}")print("将使用文件的【修改日期】进行重命名。")print("警告: 文件重命名是不可逆操作,建议在继续前备份您的文件夹。")print("-" * 60)confirm = input("确认要开始处理吗? (y/n): ")if confirm.lower() == 'y':batch_rename_md_files(target_folder)print("\n所有操作已执行完毕。")else:print("操作已由用户取消。")else:print(f"错误: 您输入的路径 '{target_folder}' 不是一个有效的文件夹。", file=sys.stderr)

注意事项

  1. 备份: 强烈建议在运行此脚本前,先备份你的整个文件夹。 文件重命名是一个不可逆的操作,以防万一出现非预期的结果。
  2. 文件创建时间 (ctime): os.path.getctime() 的行为在不同操作系统上可能存在差异。在 Windows 上,它通常是文件的创建时间。但在 Unix/Linux 系统上,它可能是文件元数据 (inode) 的最后更改时间。对于大多数个人笔记场景,这个时间是足够准确的。如果需要使用文件的 最后修改时间,只需将 os.path.getctime 更改为 os.path.getmtime 即可。
  3. 幂等性 (Idempotency): 此脚本是幂等的,意味着你可以重复运行它而不会产生副作用。脚本会自动检测已经符合 YYYYMMDD- 格式的文件名并跳过它们,不会重复添加时间戳。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务调整中心高可用设计:从踩坑到落地的实战指南(二)

微服务调整中心高可用设计:从踩坑到落地的实战指南(二)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

NOIP2025模拟赛30

T1 T2 T3 T4\(\color{#52C41A} 普及+/提高\) \(\color{#52C41A} 普及+/提高\) \(\color{#9D3DCF} 省选/NOI-\) \(\color{#9D3DCF} 省选/NOI-\)参赛网址:https://oj.33dai.cn/d/TYOI/contest/68abe2d6c5d9c2f14c2cd7d2…

制作一个网站的全过程wordpress 手机 图片不显示

入门数字设计的时候,跨时钟域的数据处理是绕不开的课题,特别是多比特数据跨时钟域时,都会采用异步FIFO的方法。 异步FIFO中涉及较多的考点这里记录几个以供大家参考。 1. 异步FIFO的空满判断分别在哪个域? 根据异步FIFO的结构&…

dede采集规则下载网站爱给网官网免费素材

https://github.com/yechens/NL2SQL Text2SQL 语义解析数据集、解决方案、paper资源整合项目

图文讲解k8s中Service、Selector、EndpointSlice的运行原理 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

怎么做义工网站去河南省住房和城乡建设厅网站查

下载ssh https://github.com/PowerShell/Win32-OpenSSH/releases 然后把它放入 C:\Program Files 中 添加环境变量 高级系统设置-》高级-》环境变量-》 是用户变量 不是系统变量 选择 path- 然后点击编辑,然后新建, 把刚才的地址放进去 C:\Program F…

2025西安品牌新房,西安刚需新房,陕西优质新房住宅推荐,地建嘉信臻境,超2000㎡高端会所,满足多元化生活需求

2025西安品质新房推荐:地建嘉信臻境,开启理想人居新篇章 在西安这座充满活力与机遇的城市,寻找一处理想的新房成为许多人的梦想。今天,为大家推荐一个备受瞩目的项目——地建嘉信臻境,它将为您带来前所未有的居住…

公司网站主页设计网络销售怎么做才能做好

思科设备参考:路由引入实验(思科) 技术简介 路由引入技术在网络通信中起着重要的作用,能够实现不同路由协议之间的路由传递,并在路由引入时部署路由控制,实现路径或策略的控制 实验目的 不同的路由协议之…

2025年未央区高端楼盘,西咸新区品质楼盘,西安高新品牌楼盘住宅口碑推荐,地建嘉信臻境周边配套丰富,教育医疗商业齐全

地建嘉信臻境:沣东文商板块的品质之选 地建嘉信臻境项目由拥有二十余年地产开发经验的团队运营,作为地建嘉信深耕陕西6年、布局6城8盘的第八座作品,以国企担当为依托,致力于革新沣东区域的生活范本。项目位于沣东文…

copyparty.exe 怎么用?局域网文件共享工具安装与运行教程

copyparty.exe 怎么用?局域网文件共享工具安装与运行教程​一、什么是 copyparty?​copyparty​ 是一个开源的小工具,主要用来快速在局域网里共享文件,比如你可以用手机、电脑通过浏览器访问,直接上传或下载文件,…

2025西安高端新房,西安优质新房,西安品牌新房住宅推荐,地建嘉信臻境,沣东文商板块门户,享双地铁便利

2025西安高端新房推荐:地建嘉信臻境引领品质人居新风尚 在西安这座充满魅力与活力的城市中,寻找一处理想的居住之所成为众多购房者的追求。而地建嘉信臻境项目,无疑是众多优质新房中的一颗璀璨明星。地建嘉信臻境项…

2025年西安洋房楼盘,陕西优质楼盘,西咸新区现房楼盘住宅口碑推荐,地建嘉信臻境超2000㎡高端会所,功能多样

2025年西安洋房楼盘——地建嘉信臻境的魅力所在 在西安房地产市场中,地建嘉信臻境项目犹如一颗璀璨的明珠,闪耀着独特的光芒。它由拥有二十余年地产开发经验的团队运营,作为地建嘉信深耕陕西6年、布局6城8盘的第八座…

Python 闭包的应用场景与实战案例

在 Python 中,闭包是一种非常强大的功能,它允许我们创建私有的作用域,并在函数外部访问函数内部的变量。闭包在实际开发中有着广泛的应用,从简单的数据隐藏到复杂的装饰器实现,闭包都能大显身手。今天,就让我们一…

STM32 智能垃圾桶项目笔记(二):超声波测距功能实现 - 指南

STM32 智能垃圾桶项目笔记(二):超声波测距功能实现 - 指南2025-10-01 12:35 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !import…

做电影网站要几G空间的网站开发商业秘密保密协议

Part 1 制图综述 1.1 制图的目的 随着GIS在各行各业的深入应用,各信息化部门和生产单位都逐渐建立起自己的GIS的应用,同时积累了大量的地理数据。随着应用深度和广度的推进,针对数据建立专题应用越来越迫切,对行业专题制图的需…

通过配置 GitLab 自动触发项目自动化构建与部署 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

双网卡服务器校园网访问故障排查与解决​ - 教程

双网卡服务器校园网访问故障排查与解决​ - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

黄页网站建设建筑公司网站封面图片

1、下载vscode 官网地址:https://code.visualstudio.com/ 针对ubuntu点击下载deb安装包,默认下载地址如下,下载速度很慢,而且会下载失败,解决方法如下: 将“https://az764295.vo.msecnd.net”改为“https://vscode.cdn.azure.cn”后,下载会很快。 例如,将: https:…

怎么实现网站建设报价方案手机免费在线搭建网站

一页有三栏:主栏、副栏、思考栏。主栏主要是在右上角,主要记录学到的内容。副栏在左边,主要是简单概括重点。思考栏在底部,主要是记录收获、感悟。 主栏:在听讲或阅读时把重要的内容或知识的要点记录在右侧的区域&…