用Python批次改資料夾名稱

平民百姓
Feb 27, 2021

--

這個慘案發生在某個深夜,在整理相簿的時候發現檔案名稱日期的部分沒有統一,覺得一個一個改很累,於是就找了windows 的 powerShell 指令來用

結果他的 dot . 不會正常的讀取...我的一堆資料夾的名稱就整個悲劇
一怒之下我就想說用 Python 自己寫一個!

dir
|----2007.07.01
|----2007.7.2
Dir | Rename-Item -NewName {$_.Name -replace '.7.','.07.'}
# 上面的資料夾們執行這段指令後變成下面的悲劇
dir
|----20.07..07.01
|----20.07.7.2

路徑可以用絕對路經跟相對路徑

import os
import time
import re
def 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))

參考資料

非常感謝寫這篇的大大
https://ithelp.ithome.com.tw/articles/10229795

--

--

平民百姓
平民百姓

Written by 平民百姓

由後端轉全端的弱弱工程師 - 生活筆記

No responses yet