markdown文件中图片url替换方法
博客园可以直接通过markdown文件导入成博客,我在本地有一些自己的markdown文件,但是里面的图片都是相对路径,其实我将这些文件都打包好传到gitee了,那其实这些图片也在gitee中,所以我只要把markdown文件中的相对路径换成gitee中的路径就好了,下面是我用python写的一个脚本。
import argparse import os import re def replace_string_in_file(source_path, target_path, old_string, new_string): # 读取源文件 with open(source_path, 'r', encoding='utf-8') as source_file: content = source_file.read() # 考虑反斜杠情况 pattern = r'\]\(\..*\)' matchList = re.findall(pattern, content) for match in matchList: newMatch = match.replace('\\', '/') content = content.replace(match, newMatch) # 替换url内容 updated_content = content.replace(old_string, new_string) # 处理新文件名 if (target_path == 'default_target.txt'): path, filename = os.path.split(source_path) new_filename = "handled_" + filename target_path = path + new_filename # 写入新文件 with open(target_path, 'w', encoding='utf-8') as target_file: target_file.write(updated_content) def main(): parser = argparse.ArgumentParser(description='Replace text in a file.') oldStr = './assets/' newStr = 'https://gitee.com/zhouyonghao/interview/raw/master/assets/' # 添加参数 parser.add_argument('-s', '--source', default='default_source.txt', help='Source file path') parser.add_argument('-t', '--target', default='default_target.txt', help='Target file path') parser.add_argument('-o', '--old', default=oldStr, help='String to be replaced') parser.add_argument('-n', '--new', default=newStr, help='Replacement string') # 解析命令行参数 args = parser.parse_args() # 调用函数 replace_string_in_file(args.source, args.target, args.old, args.new) if __name__ == '__main__': main()
调用方法
$ python3 url_replace.py -s <需要完成替换的文件名>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix