Pythonで画像ファイルを振り分け

画像ファイル(写真)はスマホで撮影すると、

それを自動的にoneDriveにアップロードされ、

それがPCの中に反映されるのですが、

それを年と月毎にフォルダ分けするのがめんどくさいので、

自動的に振り分けるPythonスクリプトを作成しました。

from datetime import date
import glob
import os
import pathlib
import shutil

CAMERA_ROLL = 'カメラ ロール'

class file_date:
    def __init__(self, name, year, month):
        self.name = name
        self.year = year
        self.month = month

def __main():
    folder = glob.glob(CAMERA_ROLL)
    if len(folder) != 0:
        organize_cameraroll()

def get_filelist():
    files = []
    for filename in glob.glob('*'):
        stat = os.stat(pathlib.Path(filename))
        dt = date.fromtimestamp(stat.st_ctime)
        file = file_date(filename, str(dt.year), str(dt.month).zfill(2))
        files.append(file)
    return files

def organize_cameraroll():
    os.chdir(CAMERA_ROLL)
    files = get_filelist()
    for file in files:
        if len(glob.glob(file.year)) == 0:
            os.mkdir(file.year)
        dist = file.year + "\\" +file.month
        if len(glob.glob(dist)) == 0:
            print(dist)
            os.makedirs(dist)
        if not os.path.isdir(file.name):
            pass
            shutil.move(file.name, dist + '\\' + file.name)

__main()

コメントを残す

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

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