批量修改文件

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

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

这个事情用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

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值