【Python】ファイル名の日付をアメリカ式から日本式に変換する
機能
ファイル名の日付をアメリカ式から日本式に変換するPythonプログラムです。
- アメリカ式:DD-MM-YYYY、D-M-YYYY
- 日本式:YYYY-MM-DD、YYYY-M-D
【実行前】
【実行後】
サンプル動画
プログラム
#! Python3 # 機能 # ファイル名の日付をアメリカ式から日本式に変換する # 使い方 # 1.Pythonを実行する # 実行コマンド # python file_name_date_converter.py パス # python file_name_date_converter.py input import os import re import sys import shutil # アメリカ式日付の正規表現 date_pattern = re.compile( r""" ^(.*?) ((0|1)?\d)- ((0|1|2|3)?\d)- ((19|20)\d\d) (.*?)$ """, re.VERBOSE, ) # ファイル名を変換する def convert_file_name(file_name): # アメリカ式日付を含むファイル名を検索する match_object = date_pattern.search(file_name) if match_object == None: return None # ファイル名を分割する before_part = match_object.group(1) month = match_object.group(2) day = match_object.group(4) year = match_object.group(6) after_part = match_object.group(8) # 日本式日付のファイル名に変換する return before_part + year + "-" + month + "-" + day + after_part if len(sys.argv) != 2: sys.exit("python file_name_date_converter.py パス") path = sys.argv[1] for file_name in os.listdir(path): # ファイル名を変換する new_file_name = convert_file_name(file_name) if new_file_name == None: continue # リネームする file_path = os.path.join(path, file_name) new_file_path = os.path.join(path, new_file_name) print('Renaming "{}" to "{}"...'.format(file_path, new_file_path)) shutil.move(file_path, new_file_path)
プログラムを使ってリネームする際は、リネームする処理をコメントアウトした状態で一度実行した方がよいです。
ログから対象ファイルやリネーム後のファイル名が問題ないかを確認することができます。
#shutil.move(file_path, new_file_path)
使い方
- Pythonを実行する
コマンド
実行コマンド
python file_name_date_converter.py パス python file_name_date_converter.py input
実行環境
プログラム実行時の環境は以下になります。
開発環境については以下を参考にして下さい。
プログラムのバッチ化については以下を参考にして下さい。
exeファイル
Python環境がなくても実行可能なexeファイルもあります。
とりあえず試してみたい方は以下からダウンロードして下さい。
実行方法
コマンドラインから以下のコマンドを実行して下さい。
file_name_date_converter.exe パス file_name_date_converter.exe input
GitHub
今回使用したプログラムやテストデータはGitHubにアップロードしています。