python实现markdown文件字段批量替换
Posted 终不似
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现markdown文件字段批量替换相关的知识,希望对你有一定的参考价值。
python实现markdown文件字段替换
需求
买了新域名后,七牛云的图床链接需要从xuetao.co替换到senup.cn,具体操作是要从本地众多markdown文件里面批量替换七牛云的图床地址,然而手动操作又太麻烦。因此,用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('img.xuetao.co', 'img.senup.cn', 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:logsource\_posts'
modify_md_content(top)
以上是关于python实现markdown文件字段批量替换的主要内容,如果未能解决你的问题,请参考以下文章
Python实现批量导入Markdown文件到WordPress(博客搬家工具,代码已开源)
Python实现批量导入Markdown文件到WordPress(博客搬家工具,代码已开源)