#####编写一个程序,在一个文件夹中,找到所有带指定前缀的文件,诸如spam001.txt,spam002.txt 等,并定位缺失的编号(例如存在spam001.txt 和spam003.txt,但不存在spam002.txt)。让该程序对所有后面的文件改名,消除缺失的编号。


import shutil, re, os
filedir = 'C:\\Users\\Loyu\\Desktop\\python1'
a = os.listdir(filedir)
alist = ' '.join(a)
span = re.findall('spam(\d+).txt', alist)
span.sort()
j = 0
lenlist = []
for i in range(1,len(span)+1):
    newi = str(i)
    newistr = newi.zfill(len(span[0]))
    lenlist.append(newistr)
    if span[i-1] != lenlist[j]:
        shutil.move(filedir + '\\spam' + span[i-1] + '.txt', filedir + '\\spam' + lenlist[j] + '.txt'  )
    j += 1
print('恭喜你,所有的文件已经按顺序spam' + str(lenlist) + '.txt命名')