對於使用python進行檔案批量重新命名問題?
各位先進好 最近在嘗試編譯對照片批量修改檔案名稱,目前進度如下 ```python import os # path=要重新命名的照片位置 path=input("請輸入資料夾位置:") #把一個路徑拆分為兩部分,後一部分總是最後級別的目錄或檔名 (todofolder,foldername)= os.path.split(path) #加入群次等檔名 dirlist= os.listdir(path) for i in dirlist: temp_name = foldername+"_"+i os.rename(os.path.join(path, i), os.path.join(path, temp_name)) dirlist= os.listdir(path) for a in dirlist: new=a.replace('_a','a') rename = os.rename(os.path.join(path, a), os.path.join(path, new)) dirlist= os.listdir(path) for b in dirlist: n=b.replace('_b','b') rename = os.rename(os.path.join(path, b), os.path.join(path, n)) dirlist= os.listdir(path) for c in dirlist: k=c.replace('_c','c') rename = os.rename(os.path.join(path, c), os.path.join(path, k)) ``` 目前遭遇問題是,因照片剪裁後可能會帶有_a、_b、_c、_d、_e、_f、_g、_h ... 等文字附加在檔案名稱的最後 而現在的寫法是用多次的重複迴圈改名,想請問有沒有能夠一次全部改寫的方式進行優化
回答列表
-
2021/06/02 下午 04:15Jaio贊同數:0不贊同數:0留言數:0
請問意思是單純想把底線去掉嗎? 如果是,那麼可以直接用 str.replace()。 接續你的程式碼(修改的地方已加註解): ```python import os # path=要重新命名的照片位置 path=input("請輸入資料夾位置:") #把一個路徑拆分為兩部分,後一部分總是最後級別的目錄或檔名 (todofolder,foldername)= os.path.split(path) #加入群次等檔名 dirlist= os.listdir(path) for i in dirlist: st = i.replace('_', '') # 把原檔名的 '_' 刪掉 temp_name = foldername+"_"+st # 加入刪掉 '_' 後的原檔名 os.rename(os.path.join(path, i), os.path.join(path, temp_name)) ``` 希望能解決你的問題,有問題歡迎追問
-
2021/06/06 上午 00:32張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
嗨,你好
可以把「_a、_b、_c、_d、_e、_f、_g、_h」在外面包一層迴圈來處理。
嗨,你好,我是維元,持續在不同的平台發表對 #資料科學、 #網頁開發 或 #軟體職涯 相關的文章。如果對於內文有疑問都歡迎與我們進一步的交流,都可以追蹤 我的粉絲專頁 ヽ(●´∀`●)ノ