Python: ファイル名をハッシュ値でリネーム。さらにAutomatorでクイックアクション化。

ファイルのハッシュ値(MD5)を計算し、ハッシュ値に応じたファイル名に変更するスクリプトを作りました。
さらに、Automatorを使って、スクリプトをクイックアクション化してみました。

1.最終的にできること

とあるファイル(IMG_1188.jgp)があります。

右クリック>サービス>名前をハッシュ値に変更

ファイル名が変更されました。

 

 2.前提

  • MacBook Pro (16-inch, 2019)
  • macOS Catalina 10.15.2
  • Python仮想環境
    • pyenv: 1.2.16
    • pipenv: 2018.11.26
    • Python 3.8.0

3. Python仮想環境を整える

適当なディレクトリ例えば~/path-to-projectを掘って、そこに仮想環境を整えます。

4. Pythonスクリプト

rename-md5.pyです。

引数としてファイルパスを渡すと、そのファイルのMD5ハッシュを計算し、そのハッシュ値でファイル名を変更します。

5. Pythonで実行

適当なファイルtest1.txtを作成してファイル名変更を実験します。

 

ファイル名がtest1.txtから7f07cd886f76a7ee6e5defb537324590.txtに変更されました。

6. コマンドとして実行

1行目にシバンを書いているので、スクリプトファイルに+xのパーミッションを与れれば、pythonをタイプすることなく実行できます。

 

コマンドを常用するのであればパスを通すのが吉。ただ、Pythonでコマンドを自作する度にパスを通していたら、パスがどんどん増殖してしまいます。なので、私は、~/binにパスを通しておき、そこへ自作コマンドを起動するシェルスクリプトを置いています

例えば、rename-md5.pyを起動するシェルスクリプトrename-md5はこんな感じ。chmod +x ~/bin/rename-md5で実行権を与えることをお忘れなく。

2行目source ...は、Python仮想環境をアクティベートする呪文です。これで、仮想環境下でPythonスクリプトを実行できます。

以上の設定により、次のコマンドでファイル名をハッシュ値に変えることができるようになりました。

7. Automatorでクイックアクション化


Atutomatorを起動します。
「ファイル>新規」でファイルを開いて、次の手順で設定を行います。

「クイックアクション」>「選択」

「シェルスクリプトを実行」をドラッグ&ドロップ

スクリプトを記述します。

スクリプトの内容は次のとおり。

 

最後に、適当な名前、例えば「名前をハッシュ値に変更」でセーブします。
「名前をハッシュ値に変更」が使えるようになりました。

以上です。

 

Leave a Comment

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください