Skip to content

Instantly share code, notes, and snippets.

@Neko288
Last active December 12, 2021 07:39
Show Gist options
  • Save Neko288/a3a6bfb44732e22bae3db7bd52e6a5bf to your computer and use it in GitHub Desktop.
Save Neko288/a3a6bfb44732e22bae3db7bd52e6a5bf to your computer and use it in GitHub Desktop.
追加日で一括リネーム Batch rename files by "addition date"
#ファイルを追加日時順にリネームします。追加日時でソートして使ってたものを別の端末で使いたいときとかに。
#多分もっときれいに書けるんだろうけど、時間もないしめんどくさいのでやめとく
#MACで使用する場合は、17行目を無効(削除or#)にして18行目を有効にしてください。
import os, pathlib, datetime, time,re
from datetime import date
print('作成日時を用いて一括リネームできます。')
def add_time_rename(folder_path,mac):
file_list = os.listdir(folder_path)
file_dtime = []#{}
file_name = []
for file_name_i in file_list:
make_time = datetime.datetime.fromtimestamp(os.path.getctime(folder_path+file_name_i)).strftime('%Y/%m/%d %H:%M:%S')
#make_time = datetime.datetime.fromtimestamp(os.stat(folder_path+file_name_i).st_birthtime).strftime('%Y/%m/%d %H:%M:%S')
file_dtime.append(make_time)
file_name.append(file_name_i)
file_dtime, file_name = zip(*sorted(zip(file_dtime, file_name) ,reverse=True))
for num, file_time in enumerate(file_dtime):
print(str(num)+' '+str(file_name[num]))
os.rename(folder_path+file_name[num], folder_path+str(num)+'_'+file_name[num])
def deletion_rename(folder_path):
all_file = os.listdir(folder_path)
ok = r'^[0-9]+_'
for i in all_file:
if re.compile(ok).search(i):
rename_after = folder_path+re.sub(ok,'',i)
os.rename(folder_path+i,folder_path+re.sub(ok,'',i))
print('Success '+rename_after)
else:print('NOT FOUND ' + i)
while True:
path1 = input('Folder path : ')
which = print('リネーム?(y) 元に戻す?(n) 入力して : ')
if which == 'y':
add_time_rename(path1)
if which == 'n':
deletion_rename(path1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment