9.8.3 消除缺失的编号

Posted simonxu0559

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

技术图片

以上是关于9.8.3 消除缺失的编号的主要内容,如果未能解决你的问题,请参考以下文章

python编程快速上手之第9章实践项目

Python实验:消除缺失的文件编号

如何创建片段以重复变量编号中的代码行

覆盖javascript以消除闪烁

如何在两个表之间找到缺失的代码?

使用后续突变和缺失片段中继 commitUpdate 回调