hexoblog添加hexo标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
zhuti='python'
tags='''- python'''
path="E:\\笔记\\python"
backup_path=f'{path}\\backup'
##fenlei为其分类,tags为其标签,path为读取文件的路径,backuppath为备份目录,主题title为其文件名
#读取后会自动将文件备份,然后写入hexo标签,为防止第二次再对相同文件进行写入标签,所以会使其写入后改名为原名_hexo.md
import os
import datetime
#这里walk拿到的三个值为根文件夹目录,根文件目录中的文件夹和根文件目录中的文件
for root,dirs,files in os.walk(path):#这个会递归查询所有子文件夹的文件
#由于walk会无限递归而这里我们只需要根文件夹下为.md结尾的文件则加入一个判断
if root == "E:\\笔记\\python":
for file in files: #循环每个文件
#文件备份功能
file1 = os.path.join(root,file) #拼接文件与文件夹路径
file2=file.split(".") #将文件名和文件扩展名分开,用于判断文件名,下面if只取md类型文件
if file2[1] == "md":
if "hexo" in file2[0]:
print(f"文件{file}的文件名包含hexo,所以不会备份文件")
continue
else:
if not os.path.isdir(backup_path):
os.mkdir(backup_path)
with open(f"{backup_path}\\{file}", "a+", encoding="utf-8") as f1: # 备份到的路径 首先先打开被备份的路径是怕被备份文件本身不存在,所以这里如果没有则提前创建一个
with open(f"{file1}", "r+", encoding="utf-8") as f: #备份的md文件
a = f.read()
f1.seek(0) #由于这里是r+模式打开文件,所以需要跳到开头然后再覆盖写入
f1.write(a)
print(f"文件:[{file}]已备份为E:\\笔记\\python\\backup\\{file}")


#备份完成之后开始将hexo博客的标签格式写入每一个md文件。
datetime1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
with open(f'{file1}','r+',encoding='utf-8') as f:
a = f.read()
f.seek(0)
b = f.write(f"""---
title: {file2[0]}
date: {datetime1}
categories: {zhuti}
tags:
{tags}
---
""")
f.write(a)
f.close()
os.rename(file1,f"{root}\\{file2[0]}_hexo.{file2[1]}") #将已经写入hexo标签的文件改名
print(f"{file}标签写入完成")

2.typora更改图片位置代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
file="E:\\笔记\\python\\面向对象_hexo.md"
import re,os
def alter(old_str,new_str):
path = "E:\\笔记\\python"
# 这里walk拿到的三个值为根文件夹目录,根文件目录中的文件夹和根文件目录中的文件
for root, dirs, files in os.walk(path): # 这个会递归查询所有子文件夹的文件
# 由于walk会无限递归而这里我们只需要根文件夹下为.md结尾的文件则加入一个判断
if root == "E:\\笔记\\python":
for file in files: # 循环每个文件
file1 = os.path.join(root,file)
file2=file.split(".") #将文件名和文件扩展名分开,用于判断文件名,下面if只取md类型文件
if file2[1] == "md":
with open(file1, "r", encoding="utf-8") as f1,open("%s.bak" % file1, "w", encoding="utf-8") as f2:
for line in f1:
f2.write(re.sub(old_str,new_str,line))
os.remove(file1)
os.rename("%s.bak" % file1, file1)
alter(https://yinshiweiysw.github.io/images/assets/')

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!