写真を整理したい (2/n)

 昨日の記事 の続き。 おうち NAS にある大量の写真から、キャプチャやコピーとそのオリジナルを探そうとしています。

 昨日はファイルぜんぶ列挙してたので、今日は画像ファイルに絞り込んで、その数を数えてみました。 画像ファイルに絞り込むのは、mimetypes というライブラリで確認できそうです。 目標としては動画ファイルのキャプチャもあるんだけど、今日のところは静止画に絞りました。

#!/usr/bin/env python3

import mimetypes
from pathlib import Path
from typing import Generator

def iterfile(path: Path) -> Generator[Path, None, None]:
    first = "" if path.name == "" else path.name[0]
    if first == "." or first == "@" or first == "_":
        return
    if path.is_file():
        yield path
    if path.is_dir():
        for child in path.iterdir():
            for item in iterfile(child):
                yield item

count : int = 0

for file in iterfile(Path(".")):
    filetype = mimetypes.guess_type(file)[0]
    if filetype and filetype[:6] == "image/":
        print(file)
        count += 1

print(count)

 うえ半分は昨日のままですね、import が増えてる程度。 した半分でファイル種別を判断しています。

 さてこの結果、80888個の静止画ファイルが見つかりました。 キャプチャやコピーとそのオリジナルを探すとなると、 80,887 * 80,886 = 6,542,625,882 って 65億回のマッチングが必要になるので、 マッチング 1 回に 1 秒かかるとして、200年かかりそうです。

 まじか。どうしたもんかなあ、これ。