m2ts mts ファイルを録画日にリネームするexe実行プログラム

ソースはpython3.8.3で記述しrenm2ts.pyです。

pip install pyinstaller

exe化するには以下のように入力します。-–onefile と -–noconsole は省略可能です。

pyinstaller renm2ts.py --onefile

で実行ファイルrenm2ts.exeがdistディレクトリーに作成されます。

カレントディレクトリーのm2tsとmts属性の画像ファイルを録画日にリネームします。

ソースは コメントを入れてわずか51行です。

#最終更新:2020.07.01
import pathlib
import sys
import glob
import os
import subprocess
from subprocess import PIPE
#import re
#pattern = re.compile(r'\.\\20[0-2][0-9]')

#設定pathの directry内のm2tsAVCHDBDAV)ファイルを録音日にリネームする
#mediainfo C:\Program Files\CLIwindows10システムのユーザー環境変数pathに追加

# カレントディレクトリー ファイル名を一括で変更する
def rename(flist,fattr):
list =[]
count = 0
for fname in flist:
if fname[2:4] == '20':
continue
#print('fname:',fname)
#fnameに空白があるとshellが正しくファイル名を認識できない。
proc = subprocess.run("mediainfo --Output=General;%Recorded_Date% " + fname,
shell=True, stdout=PIPE, stderr=PIPE,text=True)
s = proc.stdout
if s[0:2] != '20':
continue
output = s[0:4]+s[5:7]+s[8:10]+'_'+s[11:13]+s[14:16]+s[17:19]
# wcnt:try wright count, wstr:wright string
wcnt, wstr = 0, ''
while True:
try:
os.rename(fname, output + wstr + '.' + fattr)
except WindowsError:
print('ERROR:same time stamp:',fname,output,wstr)
wcnt += 1
wstr = '_' + str(wcnt)
continue
break
count += 1
print('処理数:', count, ' 変更:', fname, '->', output)
return count

# mainプログラム
#os.chdir('e:\m2ts')

# 拡張子.m2tsまたは.mtsのファイルリストをTXTで取得する
fattribs = ['m2ts','mts']
for fattr in fattribs:
flist = glob.glob('.\*.'+fattr)
print('変更前:'+fattr)
print(flist)
print('処理数:',rename(flist,fattr))