この記事は古いです。1眼レフなどで撮影した写真はVer.2をご利用ください。スマホとかはこの記事のツールが使えるかもしれません。
写真一瞬フォルダ分けマシン
どうもNSZ山本です。
撮影した写真がどこにあるか分からなくなること多くありませんか。
同じフォルダに全部ズラっとある中から探すのは大変な苦痛です。
しかし、
撮影毎にフォルダ分けするのもそれはそれで超めんどい。
めんどい。
自動化してえ。
なんで手作りしました。その名も、
Photo to Folder (フォトトゥフォルダー)
略称:P2F / PTF
ファイル名に日付8桁が入っている写真が対象です。
僕のしょっぱい技術力ごめん。
ダウンロード
ギットハブ
ここからdownloadできます。
phototofolder.zip をクリック
(zipの上にあるcalc.pyはソースコードです。pychamとかで自分用にカスタムしてビルド出来ます。ご自由にどうぞ。)
download / ダウンロード
使い方
繰り返しますがファイル名に8桁で日付がある写真が対象です。
今回作ったアプリは
ファイル名の中の8桁の文字(20190101など)のパターンを正規表現で検索してそれをフォルダ名にしてるだけです。
「IMGP0001.jpg」のようなものはこちらをご利用ください。
先程ダウンロードしたものを解凍します。
srcの階層にcalc.exe があります。
calc.exeをクリック。
※ショートカットをデスクトップに作成すると楽に起動できるでしょう。
選択ウインドウが出てきます。
分けたい写真が入っているフォルダを選択して、適当な写真を1枚クリック
1枚適当にクリックすれば
同フォルダ内の全写真に対して行ってくれます。
「開く」をクリック
※ウイルスバスターに攻撃扱いされる場合があります。このアプリを許可するをしてから再度calc.exeを実行してください。
一瞬です。
ソースコード
calc.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import re from pathlib import Path import os, tkinter.filedialog, tkinter.messagebox root = tkinter.Tk() root.withdraw() fTyp = [("","*")] iDir = os.path.abspath(os.path.dirname(__file__)) thisfile = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir) path1 = Path(thisfile).parent os.chdir(path1) files = os.listdir() for file in files: result = re.search('\d{8}',file) if result: start = result.start() os.renames(file, file[start:start+8] + "\\" + file) |
手動でやった場合との比較
どれだけ作業が効率化できるか比較するためにhumanとpythonに
1239枚の写真を用意し、配置しました。
手作業の場合
1200枚以上のフォルダ分けなんて開始前から私の脳が拒絶信号を発していますが、始めます。
3分45秒経過時点でまだ残り1071枚。
心が折れていますがここで止めるわけには行きません。人間の手作業の非効率さを証明するため己を鼓舞します。
結果は15分45秒
「悠久の時が流れました。街並みは変わり、この間に政府は3度転覆しました。」とナレーションが流れても良い程の途方もない時間。
1200枚の写真は71日分のフォルダ(思ひ出)に分割されました。
photo to folderの場合
12秒。
すげえP2F。
手動でやった場合よりも
15分33秒短縮できました。
15分33秒=944秒
944秒/12秒 = 78.66倍
手作業と比較して
78倍の作業効率です。
コピペ、フォルダの新規作成を繰り返す行為はキーボードとあなたの指先を消耗します。
1つのフォルダを作成して写真をコピーするのに必要なキータイプ回数を計測したところ21回。
今回作成したフォルダ数が72個でした。
21*71=1491回
1491回分あなたのキーボードとあなたの手の消耗を免れました。
ヒューマンエラーも回避できます。
今からあなたは写真のフォルダ分けに手を煩わされることはありません。
新たに創造された15分33秒の時間を有意義に使いましょう。
例えば、
- ケトルでお湯を温めてカップラーメンを5回作る。
- ジャグリングの練習をする
- ラジオ体操をして疲れた体をほぐす。
- Vtuberの動画を見る。
人生がより豊かになりました。
MAKE THE WORLD TO BETTER PLACE.
参考サイト/技術
言語: python
パイソン先生まじ最高。言語のキング。
pathlib — オブジェクト指向のファイルシステムパス — Python 3.7.2 ドキュメント
Pythonのスクリプトをexeファイル(実行ファイル)化する
本当にありがとうございます。
次回予告
「IMGP6715」の場合はどうすんだよ。とツッコみたくなる方も居るでしょう。私もです。
メタデータから撮影日を取得する予定でした。
本来なら今日やる予定だったんですけど、import pilで詰まったのでやめました。ごめんね。
座右の銘:心が折れる前に逃げる。
予定日時:そのうちやる。
了