初衷
- 練習Python,提高動手能力。
- 珍藏的壁紙文件夾名命有點亂。
- 可以學習下一些基礎的庫
開始(.jpg,無篩選)
First
首先找到OS庫,尋找可以遍歷文件名的。找到了OS.walk()
os.walk(top, topdown=Ture, onerror=None, followlinks=False)
該函數可以得到一個三元tupple(dirpath, dirnames, filenames).
dirpath:string,代表目錄的路徑;
dirnames:list,包含了當前dirpath路徑下所有的子目錄名字(不包含目錄路徑);
filenames:list,包含了當前dirpath路徑下所有的非目錄子文件的名字(不包含目錄路徑)
注意,dirnames和filenames均不包含路徑信息,如需完整路徑,可使用os.path.join(dirpath, dirnames)
通過遍歷感受下os.walk的使用。如果現在只做當前目錄的話,只需要第一個dirpath即可。
Second
既然我們需要重命名,就需要用到os中的os.rename()。因為文件名不包含目錄文件,我們可以通過os.path.join()來合並目錄命,然后循環重命名到結束。
但是在rename前發現,這種的完整路徑每次都需要帶上后綴,十分的不方便。
Third
分離文件名字和后綴名的話可以用到os.path.splitext(),但是想想能不能做個分開的篩選,PNG歸為一堆,JPG歸為一堆。這里都是jpg,篩選的晚上繼續補全。這里就把jpg來重命名。
Final
最后完成的代碼
import os def file_name(file_dir): dirpath_list=[] filenames_list=[] old_route=[] new_route=[] yunying=0 for dirpath, dirnames, filenames in os.walk(file_dir): dirpath_list.append(dirpath) filenames_list.append(filenames) filenames_list0=filenames_list[0][:] for i in filenames_list0: old_route.append(os.path.join(dirpath_list[0],i)) new_route.append(os.path.join(dirpath_list[0],'GuiMie'+str(yunying)+'.jpg')) yunying+=1 try: for i in range(len(old_route)): os.rename(old_route[i],new_route[i]) print('rename successfully') except Exception as e: print(e) if __name__ == '__main__': file_name(r'C:\Users\dell\Pictures\鬼滅')
效果圖: