利用Python批量修改資料夾下所有資料夾的檔名
阿新 • • 發佈:2019-01-10
話說需求產生動力。
昨天下了一個小圖包。作者把所有的檔名都加上了他們自己的網站名....看得我吐血了0.1個壓縮包裡面還有好多個壓縮包。看得我心很累。所以希望按照檔名,批量修改我個人小相簿裡面的所有檔案的檔名./邪惡的笑
用到的模組只有OS
os.path.basename(檔案路徑)獲取檔名
os.path.dirname(檔案),獲取檔案絕對路徑
os.walk(FOLDERPATH)遍歷爬取該資料夾下所有的資料夾及檔案。如果[0]的話,就是所有的資料夾。
#自動修改資料夾下所有檔案的檔名. 檔名=資料夾名+序號 #修改時間 2018年7月6日 15:14 import os,time firstfolder=r"C:\Users\Jack\Desktop\wallpaper" def changename(file,newname): #根據檔名改名. 改成 資料夾名+newname if os.path.isfile(file): filename=os.path.basename(file).split('.')[0] fileextensions=os.path.basename(file).split('.')[1] filepath=os.path.dirname(file) foldername=filepath.split('\\')[-1] newfile=filepath+'\\'+foldername+'-'+str(newname)+'.'+fileextensions try: os.rename(file,newfile) except FileExistsError: pass else: return False import os def getlist(folder): #讀取該資料夾下所有的檔案路徑 list=[] if os.path.isdir(folder): for row in os.listdir(folder): list.append(folder+'\\'+row) else: pass return list start=time.time() folderlist=[] for i in os.walk(firstfolder): folderlist.append(i[0]) for folder in folderlist: list=[] getlist(folder) i=1 for file in list: changename(file,i) i+=1 print('done') print(time.time()-start)