使用方法:将pack.py放入需要打包的md文件同一目录运行即可。
实现效果:

pack.py

import os
import re
import shutil
 
root_folder = "."
target_folder_name = "images"
 
for root, dirs, files in os.walk(root_folder):
    if target_folder_name in dirs:
        dirs.remove(target_folder_name)
        continue
 
    for filename in files:
        if filename.endswith(".md") and filename.lower() != "readme.md":
            md_path = os.path.join(root, filename)
            images_folder = os.path.join(os.path.dirname(md_path), target_folder_name)
 
            new_folder = os.path.join(root, os.path.splitext(filename)[0])
            if not os.path.exists(new_folder):
                os.makedirs(new_folder)
 
            new_md_path = os.path.join(new_folder, filename)
            shutil.move(md_path, new_md_path)
 
            images_subfolder = os.path.join(new_folder, target_folder_name)
            if not os.path.exists(images_subfolder):
                os.makedirs(images_subfolder)
 
            with open(new_md_path, "r", encoding="utf-8") as f:
                content = f.read()
 
            image_paths = re.findall(r'\((.*?)\)', content)
            image_paths = [path for path in image_paths if re.match(r'^[a-zA-Z]:\\', path)]  # 匹配绝对路径
 
            try:
                for idx, image_path in enumerate(image_paths, start=1):
                    image_name = os.path.basename(image_path)
                    target_path = os.path.join(images_subfolder, f"{idx}_{image_name}")
 
                    shutil.copy(image_path, target_path)
 
                    new_image_path = os.path.relpath(target_path, start=os.path.dirname(new_md_path))
                    content = content.replace(image_path, new_image_path)
            except Exception as e:
                print(e)
 
            with open(new_md_path, "w", encoding="utf-8") as f:
                f.write(content)
 
print("完成目录创建、文件移动、图片复制和路径替换")

 

推荐文章

修改网站字体为霞鹜文楷

逛博客时发现了一个好看的字体-霞鹜文楷下载地址字体预览...

观《哪吒之魔童闹海》小记

上映后在寒假一共去看过两次,第一次3D,第二次2D,算...

评论区(暂无评论)

我要评论

昵称
邮箱
网址
0/200
没有评论
可按 ESC 键退出搜索

0 篇文章已搜寻到~