カメラのRAW画像データの現像結果であるJPEGはバックアップ時は消しても良い。ということで、オリジナルのRAWファイルが存在する場合に限ってJPEGファイルを一括削除するスクリプトを書きました。GitHubでテキトーに公開中です。
- rm-sidecar-jpeg (GitHub)
作って公開して思ったこと。
- Pythonの生産効率には本当に関心する
- GitHubではコードの公開が本当に気楽にできる
一点目については、普段Cでシステムプログラミングしているギャップも多々ありますね。今回書いたスクリプトでは「指定したパスが、同名のRAWファイルが存在するJPEGファイルであるかどうか確認する関数」を次のようにジェネレータ式とanyの組み合わせを使って書きましたが、この1文はCで書こうものなら二重ループで最低5行は要るでしょう。Pythonなら、文にする必要すらありません。ステキです 🙂
def is_sidecar_jpeg(path):
path_filename, ext = os.path.splitext(path)
ext = ext.lower()
return any((ext == x for x in jpeg_exts)) and \
any((os.path.exists(path_filename + x) for x in raw_exts))
二点目については、「GitHubの登場でコードの共有がしやすくなった」という話を以前から聞いていたもののイマイチ納得できていなかったのですが、体験して始めて納得できました。洗練・シンプルなシステムやオシャレな雰囲気も重要ですが、プロジェクト・プロダクトではなく開発者単位でのコード公開場所である点が重要なのですね。ある程度経験を積んだ開発者なら、ちょっと不便があれば簡単なツールを作り捨てしているはずです(試作品も含む)。それをとりあえず上げておけばバックアップになるし、テキトーに作業しても履歴管理されるし、誰かが拾い上げて新しい発展につながるかもしれない。
流行に流されすぎるのは良くありませんが、ある程度流されないとダメだなと反省する今日この頃。