批量转换![](https://image.jpg)
及 格式的MarkDown图片为
格式,以符合GFM标准,从而实现GitHub中MarkDown文件的图片居中和自定义大小。
# 将指定文件夹下所有md文件中的图片以html格式居中
import os
import shutil
import glob
path = './'
modify_flag = False
def img_formate(file_in):
global modify_flag
#file_in = "桌面笔记本.md"
print(file_in)
file_out = os.path.splitext(file_in)[0] + "_out.md" # 分离文件名与扩展名,然后添加后缀
#print(os.path.splitext(file_in)[0]) # 分离文件名与扩展名
#print(file_out)
modify_flag = False # 重置全局变量
def parase_line(lines):
global modify_flag
for s in lines:
#print(s)
if s[:9] == ":
modify_flag = True
print(s)
#print(s[10:])
s1 = s[10:] # 后缀, 从第一个引号之后开始
url_len = s1.find('"')
#print (url_len) # 查找第一个引号
url = s1[:url_len]
#print(url)
s_out = ' \n' % url
#print(s_out)
fp.write(s_out)
elif "![" in s:
modify_flag = True
print(s)
url = s.split('(')[-1].split(')')[0]
#print(url)
s_out = ' \n' % url
#print(s_out)
fp.write(s_out)
else:
fp.write(s)
file = open(file_in, 'r', encoding='gbk')
fp = open(file_out, 'w', encoding='gbk')
try:
lines = file.readlines()
except UnicodeDecodeError:
fp.close()
file.close()
file = open(file_in, 'r', encoding='utf-8')
fp = open(file_out, 'w', encoding='utf-8')
lines = file.readlines()
parase_line(lines)
else:
parase_line(lines)
fp.close()
file.close()
print("Modify: ", modify_flag, "\n")
if modify_flag: # 修改过原文件
shutil.move( file_in, os.path.splitext(file_in)[0] + "_bak.md")
shutil.move( file_out, file_in)
else:
os.remove(file_out)
#f_list = os.listdir(path)
f_list = glob.glob(os.path.join(path, '*.md'))
#print(f_list)
for f in f_list:
#print (f)
img_formate(f)