批量轉換![](https://image.jpg)
及 <img src="https://image.jpg" alt="img" style="zoom:67%;" />
格式的MarkDown圖片爲<div align="center"> <img src="https://image.jpg" width="400px" /> </div>
格式,以符合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] == "<img src=":
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 = '<div align="center"> <img src="%s" width="400px" /> </div>\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 = '<div align="center"> <img src="%s" width="400px" /> </div>\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)