重複ファイルを一覧化
無秩序にとりあえずファイルを格納していたフォルダを整理するため、重複したファイルを一覧表示してみた。 目次 ソース 補足説明 残課題 ソース import os import csv import hashlib from collections import defaultdict root_path = 'C: \\ Path \\ to \\ Dir ' csv_file_name = 'list_duplicated_files.csv' file_dict = defaultdict( list ) for root , dirs , files in os.walk(root_path): for file in files: path = os.path.join(root , file) try : with open (path , 'rb' ) as f: key = hashlib.md5(f.read()).hexdigest() file_dict[key].append((root , file , os.path.getsize(path))) except PermissionError : print ( 'Permission denied:' , path) except UnicodeEncodeError : print ( 'UnicodeEncodeError:' , path) with open (csv_file_name , 'w' , newline = '' , encoding = 'utf-8' ) as csv_file: writer = csv.writer(csv_file) for key , values in filter ( lambda item: len (item[ 1 ]) > 1 , file_dic