为了账号安全,请及时绑定邮箱和手机立即绑定

《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")    


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消