消除缺失的编号


# -*- coding: utf-8 -*-
import os #载入操作系统模块,用于文件及文件夹操作
import re #载入正则表达式模块
import shutil #载入文件操作模块
Fnames = re.compile("spam" + "\d{3}" + "\.txt") #定义出spam***文件
NFnames = []

for foldername,subfolders,filenames in os.walk("f:\\python\\explore"): #遍历f:\python\explore文件夹
for filenames in filenames: #遍历所有文件
if Fnames.search(filenames) != None: #如果找到要找的文件
NFnames.append(foldername + "\\" + filenames) #加到列表中
print(NFnames)

for x in range(len(NFnames)-1): #冒泡拍讯,对列表进行排序
for y in range((len(NFnames)-1-x)):
if int(NFnames[y][-7:-4]) > int(NFnames[y+1][-7:-4]): #对文件名第五位到底7位的数字进行比较
NFnames[y],NFnames[y+1] = NFnames[y+1],NFnames[y] #对列表排列进行换位

def checkNF(Num): #设置匹配的名字
if len(str(Num+1)) == 1:
check = NFnames[Num][:-7] + "00" +str(Num+1) + NFnames[Num][-4:]
elif len(str(Num+1)) == 2:
check = NFnames[Num][:-7] + "0" +str(Num+1) + NFnames[Num][-4:]
else:
check = NFnames[Num][:-7] + str(Num+1) + NFnames[Num][-4:]
return check

for h in range(len(NFnames)): #循环检查
CFnames = checkNF(h) #设置匹配的名字
if NFnames[h] != CFnames: #如果不一样
shutil.move(NFnames[h],CFnames) #对文件进行改名


posted on 2018-03-13 15:50  学习代码小仓库  阅读(472)  评论(0编辑  收藏  举报