這個慘案發生在某個深夜,在整理相簿的時候發現檔案名稱日期的部分沒有統一,覺得一個一個改很累,於是就找了windows 的 powerShell 指令來用
結果他的 dot . 不會正常的讀取...我的一堆資料夾的名稱就整個悲劇
一怒之下我就想說用 Python 自己寫一個!
dir
|----2007.07.01
|----2007.7.2Dir | Rename-Item -NewName {$_.Name -replace '.7.','.07.'}
# 上面的資料夾們執行這段指令後變成下面的悲劇dir
|----20.07..07.01
|----20.07.7.2
路徑可以用絕對路經跟相對路徑
import os
import time
import redef find_dir(path):
for fd in os.listdir(path):
full_path = os.path.join(path, fd)
if os.path.isdir(full_path):
print('資料夾:', full_path)def batch_rename(path):
for fname in os.listdir(path):
full_path=os.path.join(path, fname) if os.path.isdir(full_path):
print('資料夾:',full_path) name_arr = fname.split('-')
date1 = re.search(r'(\d{4})[./-](\d{1,2})[./-](\d{1,2})', fname) if (date1 != None):
time_obj = time.strptime(date1.group(0).replace('.', '-'), "%Y-%m-%d")
new_name_date = time.strftime("%Y-%m-%d", time_obj)
new_fname = new_name_date + '_' + name_arr[1]
print('Rename資料夾:', fname, new_fname)
os.rename(os.path.join(path, fname), os.path.join(path, new_fname))