md文件统一修改图片地址路径与typora文件迁移到obsidian解决方案


import re
import os
#需求场景: 本人刚开始使用的Typora软件 这个软件的缺点就是 1 收费 2每次打开文件把截图放到md文件的时候 如果没选择偏好设置是设定的文件夹 就会导致截图默认存到c盘这样的后果就是文件如果转移到其他电脑 就会导致有些图片无法加载

#解决方法
# 1 如果不打算换掉Typora软件的话 就把原先的c盘地址的图片拷到自己设置图片路径的文件夹下面  然后使用第一个脚本  统一替换所有md文件图片的地址 生成新的md文件  但是这样治标不治本

# 2 用obsidian软件替代Typora软件  先把obsidian软件的md文件的图片地址统一设置成跟文件同级的assets文件夹下  具体怎么设置搜索一下  执行替换obsidian图片路径的代码  把原先的c盘地址的图片和其他路径的图片拷到自己设置ovsidian图片路径的assets文件夹下面  搞定 完美迁移




#md统一替换图片路径
def replace_image_paths1(md_file_path, new_directory, output_file_path):
    # 读取Markdown文件内容
    with open(md_file_path, 'r', encoding='utf-8') as file:
        md_content = file.read()

    # 使用正则表达式找到图片目录路径
    pattern = re.compile(r'!\[.*\]\((.*?)\)')
    matches = pattern.findall(md_content)

    # 替换图片目录路径
    for match in matches:
        # 获取图片文件名
        image_file_name = os.path.basename(match)
        # 构建新的图片路径,并将正斜杠替换为反斜杠
        new_path = os.path.join(new_directory, image_file_name).replace('/', '\\')
        # 替换图片路径
        md_content = md_content.replace(match, new_path)

    # 写入新文件
    with open(output_file_path, 'w', encoding='utf-8') as new_file:
        new_file.write(md_content)
# 使用示例
md_file_path = 'D:/桌面/工作注意事项/new/0.md'
output_file_path = 'D:/桌面/工作注意事项/new/file.md'
new_directory = 'assets'


replace_image_paths1(md_file_path, new_directory, output_file_path)


#======================================================================================================================================================

#替换obsidian图片路径
def replace_image_paths(md_file_path,  output_file_path):
    # 读取Markdown文件内容
    with open(md_file_path, 'r', encoding='utf-8') as file:
        md_content = file.read()

    # 使用正则表达式找到图片目录路径
    pattern = re.compile(r'!\[.*?\]\(.*?\)')
    matches = pattern.findall(md_content)

    # 替换图片目录路径
    for match in matches:
        print(match)
        # 获取图片文件名
        image_file_name= os.path.basename(match).replace(")", "")
        # 构建新的图片路径,并将正斜杠替换为反斜杠
        new_path ='![['+image_file_name+']]'
        print(new_path)
        # # 替换图片路径
        md_content = md_content.replace(match, new_path)

    # 写入新文件
    with open(output_file_path, 'w', encoding='utf-8') as new_file:
        new_file.write(md_content)


# 使用示例
md_file_path = 'D:/桌面/工作注意事项/new/0.md'
output_file_path = 'D:/桌面/工作注意事项/new/file.md'

replace_image_paths(md_file_path, output_file_path)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值