duplicatesライブラリを使います
これは重複ファイルを、Pandas Dataframeの形で返します。
使い方
引数に指定したフォルダ以下をスキャンするスクリプトを書いてみた。
dupcheck.py
import duplicates as dup
import pandas as pd
import os,sys
folder_of_interest = sys.argv[1]
df = dup.list_all_duplicates(folder_of_interest, fastscan=True)
if df.empty :
exit()
print(df)
これを、イラスト集CGフォルダに対して使ってみる。
> python dupcheck.py e:\illusts
file hash
471 e:\illusts\china\[埃罗芒阿老师 我的妹妹是黄漫... 04c9821c140e8c58cdeef5d6c365916f905b44e31f5948...
468 e:\illusts\china\[埃罗芒阿老师 我的妹妹是黄漫... 04c9821c140e8c58cdeef5d6c365916f905b44e31f5948...
469 e:\illusts\china\[埃罗芒阿老师 我的妹妹是黄漫... 0890d1ea0518b338a93fbc2afc8240e5c7cdfa7cad39bd...
.. ... ...
604 e:\illusts\china\[爱上火车Last Run 火... e10506965a84a09469c9448cced646b1e17e618a64d91c...
335 e:\illusts\china\[11月的理想乡 11月的阿卡... e22dd0666099e32670998761ae8d5e465c18183afa772c...
334 e:\illusts\china\[11月的理想乡 11月的阿卡... e22dd0666099e32670998761ae8d5e465c18183afa772c...
348 e:\illusts\china\[ALICE or ALICE... ef0797d65c1584fb28997ef7ca913e6b1d24c05381a5fe...
347 e:\illusts\china\[ALICE or ALICE... ef0797d65c1584fb28997ef7ca913e6b1d24c05381a5fe...
[88 rows x 2 columns]
もっと便利に
Dataframeについて、以下を使って表示させたほうが見やすいかもしれません。
df["file"] = df["file"].str.replace(folder_of_interest, "") # 相対パスにする
df["hash"] = df["hash"].str.slice(0, 9) # ハッシュキーは短くていい
print(df.to_string(index=False, max_rows=None,max_cols=None, justify="left")) # 全件表示