处理Github中markdown文件图片显示问题的python脚本

如果你需要上传md文档至GitHub,并且需要显示图片,却发现上传的图片无法在md文档中显示出来,这一般都是由于图片开头是大写导致的

这个时候,将图片名称和md文档中的图片链接都改成全小写就可以解决了。关键是如果需要大批量处理爬虫图片或者大量的文档时,这个繁琐的过程还是会消耗不少时间。

这个脚本的诞生就是为了处理这个过程:修改脚本中的根目录,然后运行脚本就能够将本地项目文件夹下所有的图片和md文档图片链接全部修改成小写形式,从而保证图片能够在上传GitHub后显示出来,40行,改造起来也很简单,默认只处理png文件,修改图片格式就能处理不同类型的图片。

记得备份,如果还有需要生成Github目录的,这里还有一个脚本

import os
import re

# 修改rootDir为项目根文件夹,本地的绝对地址
rootDir = 'D:\\Desktop\\xxx'	
		
def changePng(folder, file_name):
	print(f'before rename: {file_name}')
	os.rename(f'{folder}//{file_name}', f'{folder}//{file_name.lower()}')
	print(f'after rename: {file_name.lower()}')
			
def changeMd(folder, file_name):
	path = folder + '//' + file_name
	bak_path = path + '.bak'
	with open(path, 'r', encoding='utf-8') as f1, open(bak_path, 'w', encoding='utf-8') as f2:
		pattern = re.compile(r'.*/(.*?\.png)', re.I)
		for line in f1:			
			matcher = re.search(pattern, line)
			if matcher != None:
				old_img_addr = matcher.group(1)
				print(f'old image address: {old_img_addr}')
				new_img_addr = old_img_addr.lower()
				f2.write(re.sub(old_img_addr, new_img_addr, line))
			else:
				f2.write(line)
	os.remove(path)
	os.rename(bak_path, path)
	print('complete altering a md file')

for folder, subfolders, file_names in os.walk(rootDir):
	print(f'The current folder is {folder}\n-----\n')
	
	for subfolder in subfolders:
		print(f'The subfolder in current folder is {subfolder}')
	
	for file_name in file_names:
		print(f'File inside {folder}: {file_name}\n')
		if '.png' in file_name or '.PNG' in file_name:
			changePng(folder, file_name)
		if '.md' in file_name:
			changeMd(folder, file_name)

你可能感兴趣的:(scripts,python,github)