python3_learn 實現文件夾內批量對圖片重命名


初衷

  1. 練習Python,提高動手能力。
  2. 珍藏的壁紙文件夾名命有點亂。
  3. 可以學習下一些基礎的庫

開始(.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\鬼滅')

效果圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM