ポートフォリオサイト公開中

macでスクリーンショットを自動ファイル分けするスクリプトを書く【python】

要件定義

macでスクショを取りすぎて、Desktopが荒れるからスクショを整理したい

手で分別はスマートじゃない、年月で分別できたら良さげ

よしやろう

環境

– macOS Mojave var10.14.5
– Python 3.7.3

コード

import shutil
import os
import re
pwd = '/Users/tomowarkar/Desktop/SS/'
ymd_regex = r'\d{4}-\d{2}'
    
def find_SS():
    listdir = os.listdir(pwd)
    find_png = list(map(lambda x: x if '.png' in x else None, listdir))
    return list(filter(None, find_png))

def find_or_create_dir(yymm):
    yy, mm = yymm.split('-')
    pas = f'{pwd}{yy}/{mm}/'
    
    if os.path.isdir(pas[:-3]):
        if not os.path.isdir(pas):
            os.mkdir(pas) 
    else:
        os.mkdir(pas[:-3])
        os.mkdir(pas)
    return pas


files = find_SS()
for f in files:
    rgx = re.search(ymd_regex, f)
    if rgx:
        yymm = rgx.group()
        pas = find_or_create_dir(yymm)
        shutil.move(pwd + f, pas + f)

期待する動作

前提

~/Desctop/SS/配下にスクリーンショット(SS)が存在する

SSのファイル名はスクリーンショット yyyy-mm-dd hh.mm.ss.pngみたいな感じ(yyyy-mm-dd hh.mm.ssは任意の年月日時間)

最悪pngファイルでファイル名にyyyy-mmが入っていればOK

期待

  • ~/Desctop/SS/配下で年、月別でファイル分けがされる。
  • ディレクトリがなければ作成される

例1

before: ~/SS/スクリーンショット 2019-09-18 12.34.56.png
after: ~/SS/2019/09/スクリーンショット 2019-09-18 12.34.56.png

例2

before: ~/SS/スクリーンショット yyyy-mm-dd hh.mm.ss.png
after: ~/SS/yyyy/mm/スクリーンショット yyyy-mm-dd hh.mm.ss.png

スクリーンショットの保存先を変更するtips

ぼくの場合Desctop配下のSSディレクトリにSSを保存したかったので~/Desctop/SS/としている

この部分を好きに変更してくれい!

$defaults write com.apple.screencapture location ~/Desctop/SS/
$killall SystemUIServer

Next Action

スクショ時に自動的に実行するようにすればいいよね

ちなみに大量のSSを一括分類したいときにも使える

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です