码迷,mamicode.com
首页 > 其他好文 > 详细

markdown本地图片转base64嵌入

时间:2019-08-28 19:55:12      阅读:642      评论:0      收藏:0      [点我收藏+]

标签:coding   ace   note   orm   在线   代码   close   提取   字符   

markdown本地图片转base64嵌入

自己偶尔也写博客,但插入图片实在是一大难事,本身用的是typora离线来写markdown,图片也大多是本地的,每次将markdown复制到博客园编辑器,图片都不能显示(因为这里要求是网络地址而不是本地地址),来回拖动图片很打击我写作的积极性,所以我尝试写代码将markdown中的本地图片转为base64存储在markdown文件中,这样只要复制markdown源代码到博客园在线编辑器就可以了

花了半个小时写的(熟悉了一下正则表达式和文件操作),不足之处轻喷,欢迎提出建议

import base64
import re
def phtot_base64(address):#将地址为address的图片转为base64字符串
    with open(address,"rb") as photo:
        pb=base64.b64encode(photo.read())
        return str(pb)[2:-1]
target=input("请输入目标markdown文件地址");#例如:D:\Markdown\Note\Machine learning\误差与噪音.md(两侧一定不要加引号)
target=target.replace("\\","/")
with open(target,"r",encoding="utf-8") as md:#打开目标文件
    transformed=open(target[0:-3]+"_transformed.md","w",encoding="utf-8")#在目标文件同一文件夹地址下产生转换后文件
    for a in md:
        if(re.match("!\[[^]]*\].*",a)):#匹配到图片格式
            address=re.search("(?<=\()[^\)]*",a).group().replace("\\","/")#提取图片地址并且将反斜杠转换为斜杠
            a="![avatar](data:image/png;base64,"+phtot_base64(address)+")\n"#将图片格式转为base64并加上回车
        transformed.write(a)#写入一行
    transformed.close()

markdown本地图片转base64嵌入

标签:coding   ace   note   orm   在线   代码   close   提取   字符   

原文地址:https://www.cnblogs.com/redo19990701/p/11426059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!