问题描述
在一个文件夹中,找到所有带指定前缀的文件,例如:spam001.txt
定位缺失的编号,让程序对后面所有的文件改名,消除缺失的编号
代码如下:
import os, re, shutil
cuurentdir = os.getcwd()
textname = [] #储存符合要求的文件名称
for filename in os.listdir('.'):mo = re.compile(r'spam\d\d\d\.txt').search(filename)if mo != None:textname.append(filename)
number = 1
# 对该类的所有文件进行循环,检查是否需要修改
for i in range(len(textname)):all = os.path.join(cuurentdir,textname[i])mo = re.compile(r'(\d)+').search(textname[i])if int(mo.group()) != number:end = os.path.join(cuurentdir,'spam'+str(number).rjust(3,'0')+'.txt')shutil.move(all,end)print('Success revise %s to %s' % (all , end))number += 1
结果如下:
C:\WORK\Python\python.exe C:/WORK/Count/mainFunction/ceshi.py
Success revise C:\WORK\Count\mainFunction\spam013.txt to C:\WORK\Count\mainFunction\spam003.txt
Success revise C:\WORK\Count\mainFunction\spam028.txt to C:\WORK\Count\mainFunction\spam004.txt