9.8.3 消除缺失的编号
作者:互联网
1 import os, shutil, re 2 3 # 定义文件前缀、后缀(也可由用户输入) 4 prefix = 'capitalsquiz' 5 suffix = '.txt' 6 7 # 创建正则表达式用于提取文件名中的编号 8 fileRegex = re.compile('^' + prefix + r'(\d+)' + suffix + '$') 9 10 # 提取文件名中的编号,用文件名、文件编号构成键值对创建字典 11 dictNameNum = {} 12 for fileName in os.listdir('.'): 13 mo = fileRegex.search(fileName) 14 if mo != None: 15 dictNameNum[int(mo.group(1))] = fileName 16 17 # 循环遍历文件编号,找到缺失的文件编号,将当前最后一个文件编号对应的文件名修改为缺失的文件编号对应的文件名 18 index = 1 19 maxNumber = max(dictNameNum.keys()) 20 width = len(str(maxNumber)) 21 while index < maxNumber: 22 if index not in dictNameNum.keys(): # 找到缺失的文件编号 23 shutil.move(dictNameNum[maxNumber], prefix + str(index).rjust(width, '0') + suffix) # 修改文件名称 24 del dictNameNum[maxNumber] # 删除已处理的文件编号 25 maxNumber = max(dictNameNum.keys()) # 计算当前最大文件编号 26 index += 1
标签:dictNameNum,maxNumber,index,文件名,9.8,文件,编号,缺失 来源: https://www.cnblogs.com/simonxu0559/p/11781194.html