0%

一个批量替换文件内容的Python小脚本

最近做一个项目的时候,需要批量替换文件夹下子文件的内容,所以写了Python一个小脚本。

内容很简单,也没有报错处理,毕竟十分钟写的,要啥自行车,能用就行😝。

源代码在github中

batch_modify_file_content

懒得去的,下面直接贴代码:

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
import os
import re


name_list = []
# 搜索一个文件夹里的所有文件(包括其子文件夹内的)
# 并将与设定后缀相符的文件的路径放入一个列表中返回
def findmd(path):
for p in os.listdir(path):
npath = os.path.join(path, p)
print(npath)
if p[-3:] == suffix_name:
name_list.append(npath)
elif os.path.isdir(npath):
findmd(npath)
return name_list


# 对单个文件进行内容替换
def modifymd(path):
with open(path, 'r') as f:
result = re.sub(pattern, repl, f.read())

with open(path, 'w') as f:
f.write(result)
print(1)

if __name__ == '__main__':
suffix_name = '.md' # 需要修改的文件后缀
pattern = r'/.+/gifs' # 需要被替换的字符串的正则表达式
repl = 'gifs' # 被替换后的字符串
path = '1_text_formats' # 需要进行替换的文件夹的路径(绝对或者相对)

name_list = findmd(path)
print(name_list)
for n in name_list:
modifymd(n)

以上代码的例子为:

在脚本所在的同级文件目录内(因为这里是相对路径),搜索名为1_text_formats的文件夹内所有的后缀为.md的文件(包括其子文件夹内的.md文件),并且对每个.md文件内的符合正则表达式/.+/gifs的字符串替换为gifs

如果您觉得还不错,可以请我喝杯咖啡。