python 编程快速上手目录_《Python编程快速上手》的实践练习

#9.8.3 消除缺失的编号

"""

1.spam001.txt,spam002.txt,spam005.txt,如此。将前边的消除,然后后边逐一递增

2.空出一些编号,指定空出区域。然后修改编号。

"""

import re,os,shutil

#find_path=input("输入要查找的目录:")

#find_path=os.path.abspath(find_path)

find_path=os.path.abspath("D:\pytest")

filenameReg=re.compile(r"(spam(\d+)\.txt$)")

#将合格的文件名添加为列表

file_list=[]

for name in os.listdir(find_path):

reg_name=filenameReg.search(name)

if reg_name:

file_list.append(reg_name.group(1))

#空余值设计,不做过多类型及数值区域判断,输入区域符合正常范围

space=input("请确认是否留下空白区,以备后用(Y/N)")

#预留配对修改名为字典

chname_list={}

if space.lower()=='y':

rang1=input("输入空白区的起始值(包含此值为空):")

rang2=input("输入空白区的结束值(包含此值为空):")

rang=range(int(rang1),int(rang2)+1)

rang=list(rang)

print("留空区为:"+str(rang))

#将需要处理的文件名配对为字典

list1= file_list[:rang[0]-1].copy()

for file in list1:

print(list1.index(file))

filename="spam"+str(list1.index(file)+1).rjust(3,'0')+".txt"

chname_list[file]=filename

list2= file_list[rang[0]-1:].copy()

for file in list2:

filename="spam"+str(list2.index(file)+rang[-1]+1).rjust(3,'0')+".txt"

chname_list[file]=filename

elif space.lower()=='n':

#将需要处理的文件名配对为字典

for file in file_list:

filename="spam"+str(file_list.index(file)+1).rjust(3,'0')+".txt"

chname_list[file]=filename

else:

print("Input error")

#对字典进行操作move

os.chdir(find_path)

for k,v in chname_list.items():

shutil.move(k,v)

print("move {} to {}".format(k,v))

print("done")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值