问题:
在某一文件夹内有97个sql文件,全部都以统一格式命名,例如“A201222-广州李小龙纪念协会-1-广州李小龙纪念协会-2018.AUD”
由于有两段重复了,而且中间的“1”也没有意义,需要删掉,保留为“A201222-广州李小龙纪念协会-2018.AUD”
因为工作上的原因,之后还继续会出现这种情况,所以下面我就写一个程序去批量修改
解决代码:
import os path = ('输入文件路径')
f = os.listdir(path) #将文件名提取为一个列表当中 k = 0
n = 0
for i in f:
oldname = f[n]
matchObj = oldname.split('-') #如果是面对复杂一点的结构,可以用正则表达式re.match('(A\d+\-)(.*\-1\-)(.*)',string),然后取其group(1)和group(3)
if matchObj[2]!='2018.AUD':#因为文件夹内有几个文件经过手工修改,已经符合要求,所以这里写一个判断
newname = matchObj[0] + '-' + matchObj[4]
os.rename(path+'\\'+oldname,path+'\\'+newname)
k+=1
else:
pass
n+=1
print('已经修改了%d个文件名'% k)