首页 > 其他分享 >markdown文件中图片url替换方法

markdown文件中图片url替换方法

时间:2024-07-12 18:42:49浏览次数:15  
标签:markdown target url content source file path 替换 string

博客园可以直接通过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 <需要完成替换的文件名>

标签:markdown,target,url,content,source,file,path,替换,string
From: https://www.cnblogs.com/huhudejuhua/p/18299197

相关文章

  • sed命令批量替换关键字
    样例:原内容https://www.testnet.org/newslist.html?itemId=2&navID=9&itemChildId=1&useNewsToPermission=299改后内容https://www.testnet.org/newsList.html?permissionId=114sed-i-e's#https:\/\/www.testnet.org\/newslist.html?itemId=2&na......
  • 驻扎初篇(markdown)
    markdown的初级使用语法本片作为开始使用博客的第一篇笔记只为了方便为日后的编辑博客做基础的语言记录以下为markdown的语法标题标题一标题二标题三标题四标题五标题六代码行内代码&代码块行内代码使用代码标识,可嵌入文字中代码块使用4个空格或标识示例//注......
  • Code-Logger-替换标准输出和标准错误,并通过宏使能输出
    Code-Logger-替换标准输出和标准错误,并通过宏使能输出需求:替换标准输出和标准错误,并通过宏使能输出classLogger#ifndefENABLE_LOGS#defineENABLE_LOGS1//设置为1表示启用日志输出,0则禁用#endif#include<iostream>#include<sstream>classLogger{public:......
  • markdown 嵌入视频 测试
    【4KIWindows11宣传片】https://www.bilibili.com/video/BV1g64y197mi?vd_source=025a1c967fa95b3dcfb9b276f7348163你的浏览器不支持视频标签。在Markdown中嵌入视频并不是Markdown原生支持的功能,因为Markdown主要被设计用来处理文本格式化,如标题、列表、代码块......
  • WPF WebBrowser navigate to website via url and escape script error warning
    Copyfrom https://www.iditect.com/faq/csharp/wpf-webbrowser-control--how-to-suppress-script-errors.html#:~:text=To%20suppress%20these%20script%20errors%2C%20you%20can%20handle,using%20the%20Cancel%20property%20of%20the%20WebBrowserNavigatingEventArgs%20pa......
  • vue js公共截取URL的key: value方法
    letURL=http://localhost:8080/#/ficu/?taskid=1001-2271023&pageId=146&ssid=74529457205982&channelld=IPCC&userId=xx//取值URLlethref=window.location.href//拿到完整的URLlethash=window.location.hash//取#后面的所有URL//取值方法getUrlPara......
  • Flurl Http请求
    https://flurl.dev/docs/testable-http/注意:除了URL构建和解析之外的所有内容都需要安装Flurl.Http而不是基本的Flurl包。考虑与HTTP服务交互的一种非常常见的方式是“我想构建一个URL,然后调用它”。Flurl.Http允许您非常简洁地表达:usingFlurl;usingFlurl.Http;var......
  • python urllib 基础 5
    ajax的post请求importurllib.requestimporturllib.parse#url='https://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'##headers={#'user-agent':"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTM......
  • Linux 中awk命令实现将多个连续的字符替换为指定的一个字符
     001、[root@PC1test]#lsa.txt[root@PC1test]#cata.txt##测试数据aabbbbbbccbbwwxxyyzzddjjkkmmss[root@PC1test]#awk'{sub("b+","Q");print$0}'a.txt##将多个连续的b替换为QaaQcc......
  • python urllib 基础 get ajax
    get请求豆瓣电影下载importurllib.parseimporturllib.requestimportjson#url='https://movie.douban.com/j/chart/top_list?type=19&interval_id=100%3A90&action=&start='+page+'&limit=20'headers={"User-Agent"......