Last active
December 12, 2021 07:39
-
-
Save Neko288/a3a6bfb44732e22bae3db7bd52e6a5bf to your computer and use it in GitHub Desktop.
追加日で一括リネーム Batch rename files by "addition date"
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ファイルを追加日時順にリネームします。追加日時でソートして使ってたものを別の端末で使いたいときとかに。 | |
#多分もっときれいに書けるんだろうけど、時間もないしめんどくさいのでやめとく | |
#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