标签:coding ace note orm 在线 代码 close 提取 字符
自己偶尔也写博客,但插入图片实在是一大难事,本身用的是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()
标签:coding ace note orm 在线 代码 close 提取 字符
原文地址:https://www.cnblogs.com/redo19990701/p/11426059.html