批量修改文件

news2024/11/15 20:16:02

最近几个月的文章都直接发在公众号上,没有同步到博客上,想去同步时发现已经有不少了,一个个修改太麻烦了。

之前没规划好,所以博客文章都是直接放在仓库一个目录下,数量多了之后,有点乱,不好管理,微信公众号文章是按照年份和月份分目录的,所以现在把博客文章也按照年份和月份分目录了。对于之前的文章,想给它们文件名加上日期头了事。

这个事情用python脚本来做应该也很容易,但是这次特意试了一下powertoys中的批量重命名工具PowerRename,感觉很方便。

首先,把要批量修改的文件选中,然后右键 -> PowerRename,弹出PowerRename窗口

选中要批量修改文件名的文件

PowerRename窗口

然后,在PowerRename窗口中,写上表达式,可以实时预览修改结果,确认无误后,点击“应用”按钮,即可完成批量修改。

将微信公众号文章同步到博客还需要解决个问题就是hexo需要frontmatter头,这个用python脚本来解决:

import os
import re
from datetime import datetime
import textwrap

# 遍历当前目录及其所有子目录中的文件
for dirpath, dirnames, filenames in os.walk("24"):
    for filename in filenames:
        # 检查文件名是否以两位数字和一个连字符 "-" 开头
        if re.match(r"^\d{2}-", filename):
            # 获取完整的文件路径
            file_path = os.path.join(dirpath, filename)
            with open(file_path, "r+", encoding="utf-8") as file:
                content = file.readlines()

                # 提取文件中的标题
                title = re.search(r"^# (.*)$", content[0]).group(1)

                # 从文件路径和文件名中提取日期
                date_part = file_path.split("\\")[0:3]  # 提取日期部分
                date_str = "".join(date_part).split("-")[
                    0
                ]  # 将日期部分合并为一个字符串
                date = datetime.strptime(date_str, "%y%m%d").strftime(
                    "%Y-%m-%d"
                )  # 解析并格式化日期

                # 创建新的Markdown frontmatter
                frontmatter = textwrap.dedent(
                    f"""---
                        title: {title}
                        date: {date} 11:24:53
                        categories:
                        tags:
                            - c
                            - 算法
                        ---

                    """
                )
                # 将新的frontmatter添加到文件的开头
                file.seek(0)
                file.write(frontmatter + "".join(content))

第一次弄时没注意格式化字符串的缩进,导致frontmatter头的格式不对,hexo解析不了,后来改了下,就好了。

然后用hexo预览时发现,微信文章中的一级标题还在,然后又在vscode中用查找替换全部删掉~

vscode批量编辑

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。
个人博客 | blog.boringhex.top

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

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

相关文章

工业交换机如何防止广播风暴

工业交换机作为网络设备的重要组成部分,在网络中起到了连接各个设备和传输数据的重要作用。然而,广播风暴是工业交换机面临的一个常见问题,会影响网络性能和稳定性。为了防止广播风暴的发生,工业交换机可以采取一系列有效的措施。…

[数据集][目标检测]吉他检测数据集VOC+YOLO格式66张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):66 标注数量(xml文件个数):66 标注数量(txt文件个数):66 标注类别数…

qt中使用QSLite时发现query.value(0).toInt()未获取数据问题

1、首先确保数据库名没有问题 2、确保正常连接 3、非常重要的一点:query.value(0).toInt()之前,必须要有query.first(),非常重要,缺少了这个会一直查不到

ruoyi-nbcio基于jeecg的flowable前端支持自定义表单组件的自动获取方法

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

什么时候需要用到 @EnableWebSecurity 注解?

有小伙伴在学习 Spring Security 的遇到一个问题: 箭头所指的位置报红,也就是 Spring 容器中没有找到一个类型为 HttpSecurity 的 Bean。 小伙伴说如果他在配置类上加 EnableWebSecurity 注解,就不报错;不加该注解则会报错。那么…

如何快速定位到影响mysql cpu飙升的原因——筑梦之路

通常我们只需要执行show processlist 进行查看,一般执行时间最长的SQL八九不离十就是罪魁祸首,但当show processlist的输出有近千条,那么很难第一眼就发现有问题的SQL,那么如何快速找到呢?其实也非常简单。我们知道mys…

什么样的男士内裤比较好?按这个方法选男士内裤不会出错!

男士内裤作为日常穿着的重要服饰,其舒适度与卫生性对男士们的健康至关重要。随着时代的变迁,男士内裤的款式与材质也日益丰富多样,为男士们提供了更多选择。 目前市场上,男士内裤主要分为三角、平角和四角三大类别。其中&#xf…

直播商城源码-PC+APP+H5+小程序现成源码

随着电商行业的不断演进,直播商城已成为连接消费者和商品的新兴桥梁。直播商城源码提供了一个完整的解决方案,使得企业能够迅速搭建起一个覆盖PC、APP、H5和小程序的全渠道电商平台。本文将探讨直播商城源码的优势、关键功能以及如何选择适合的现成源码。…

ai对话虚拟人app有哪些?一起来看看这3款

ai对话虚拟人app有哪些?在当前的科技浪潮中,AI对话虚拟人app已经成为我们日常生活中的得力助手。它们不仅提供了更加智能、便捷的交流和信息服务,还让我们能随时随地与AI伙伴进行深度互动。这些app的广泛应用,不仅提升了我们的生活…

目标检测数据集 - 海洋垃圾检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:海洋垃圾检测数据集,真实拍摄海洋海底场景高质量垃圾检测图片数据,涉及场景丰富,比如海底塑料垃圾数据、海底铁制品罐状垃圾数据、海底纸张垃圾数据、海洋生物和海底垃圾同框数据、海底探索仪器和海底垃圾同框数据、海…

期刊的分类与级别

在学术界,期刊的分类与级别构成了一个评价学术成果和学者贡献的重要标准,同时也是学术出版与学术交流的基础。然而,对于初涉学者来说,理解期刊的分类与级别可能并不直观。本文旨在提供一个系统性的解释,并阐述为何期刊…

LeetCode刷题之HOT100之跳跃游戏

2024/6/5 今天下起了绵密细雨,空气清新很多。昨晚做的梦较魔幻,可能也是导致我睡觉时业已破损的小米手环8的表腕断裂的因素之一。来到实验室,打扫一下卫生,听听歌,做道题。好不自在呀! 1、题目描述 2、逻辑…

SD NAND的垃圾回收机制:无人机数据管理的隐形守护者

随着科技的飞速发展,无人机在各个领域的应用越来越广泛,从航拍到物流配送,再到农业监测,无人机正逐渐成为我们生活中不可或缺的一部分。而SD NAND作为一种创新的存储芯片,可以直接贴片使用,具有小尺寸、高可…

基于SpringBoot+Vue旅游民宿信息管理系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还…

Qt报错:libvlc开发的程序,出现Direct3D output全屏窗口

问题描述: 在qt中开发重播模块时,第一次在窗口正常播放,点击重播按钮后会弹出新的Direct3D output窗口播放视频 分析: 因为libvlc_media_player_set_hwnd 这个函数 设置了不存在的窗口句柄,导致vlc视频播放窗口没有嵌…

python11 序列的相关操作

枚举遍历 序列的相关操作 text "hello,python" # in 判断字符是否在序列中,存在返回true,否则返回false print(p是否存在:,(p in text)) print(a是否存在:,(a in text)) # not in 判断字符不在序列中,不存在返回true,否则返回false print(p不…

数据仓库与数据挖掘总复习练习2-3(实验六 2024.6.5)

一、练习2 is_unique是否值唯一 range(范围,步长) head()、tail()默认显示5条 缺失值情况 计算(最少多少元素求和、元素相乘) pct_change() latax(工具:专用于写公式&a…

贰[2],VisionMaster/.NetCore的WPF应用程序调用控件

1,环境 VisionMaster4.2 VisualStudio2022 WPF/.Net6.0 2,记录原因 .NetFrameWork的WPF应用程序调用添加例程.NetFrameWork的Winform应用程序相应的库,不会出现报错,界面也能正常显示操作,但是.NetCore的程序却总是报错。 2.1,.NetFrameWork的WPF应用程序 注:但是.…

深度学习——卷积神经网络(CNN)

深度学习 深度学习就是通过多层神经网络上运用各种机器学习算法学习样本数据的内在规律和表示层次,从而实现各种任务的算法集合。各种任务都是啥,有:数据挖掘,计算机视觉,语音识别,自然语言处理等。‘ 深…

会计电子档案系统方案

会计电子档案系统方案是指建立一个以电子方式存储和管理会计档案的系统。该方案具体包括以下几个方面: 1. 系统架构设计:确定系统的组成以及各个组件之间的关联和交互方式。包括数据库设计、系统服务器和客户端的部署等。 2. 电子档案管理:建…