1. 程式人生 > >《Python編程快速上手》第9.8.3實踐練習

《Python編程快速上手》第9.8.3實踐練習

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

《Python編程快速上手》第9.8.3實踐練習