用Python给Markdown文件优雅更名


,前期域名从heson.xyz更换到heson10.com,好多图片链接需要重新更换,这里记录了由Python优雅地帮助我们快速更换markdown文件字符的一次过程。

简介

python真的是太万能了,直接上效果图:

rename

食用方法

首页得要安装python的环境,这个网上教程一大堆,自行出门左拐找度娘。

直接上代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import re
import time


def modify_md_content(top):
    for root, dirs, files in os.walk(top, topdown=False):
        # 循环文件
        for file_name in files:
            file_name_split = file_name.split('.')

            try:
                if file_name_split[-1] == 'md':
                    # 找到md文件并且复制一份md文件路径
                    md_file_path = os.path.join(root, '.'.join(file_name_split))
                    copy_md_file_path = os.path.join(root, '.'.join([f'{file_name_split[0]}_copy', file_name_split[1]]))

                    # 打开md文件然后进行替换
                    with open(md_file_path, 'r', encoding='utf8') as fr, \
                            open(copy_md_file_path, 'w', encoding='utf8') as fw:
                        data = fr.read()
                        # 选择md文件中想要替换的字段
                        data = re.sub('https://pic.heson.xyz/img/', 'https://pic.heson10.com/img/', data)

                        fw.write(data)  # 新文件一次性写入原文件内容
                        # fw.flush()

                    # 删除原文件
                    os.remove(md_file_path)
                    # 重命名新文件名为原文件名
                    os.rename(copy_md_file_path, md_file_path)
                    print(f'{md_file_path} done...')
                    time.sleep(0.5)
            except FileNotFoundError as e:
                print(e)
        time.sleep(0.5)


if __name__ == '__main__':
    top = r'D:\hexo\source\_posts'
    modify_md_content(top)

其中由三个变量需要自己修改:

1.https://pic.heson.xyz/img/ 这是原来的字符

2.https://pic.heson10.com/img/这是用来替换的字符

3.D:\hexo\source\_posts这是系统中markdown文件存放的位置

写在后面

当然,举一反三,这个不仅能用来替换连续的字符,再加上一点修改,利用正则表达式,替换正括号%note, %反括号等这样一些标签元素,理论上也是可行的。


版权属于:Heson

本文链接:https://www.heson10.com/posts/899.html


—— 评论区 ——