我需要一个利用哈希值检查并提取两个文件夹内部所有重复文件的python代码并将重复文件提取到单独的文件夹内
以下是一个利用哈希值检查并提取两个文件夹内部所有重复文件的Python代码示例:
import os
import hashlib
import shutil
def get_file_hash(file_path):
# 计算文件的哈希值
with open(file_path, 'rb') as f:
content = f.read()
file_hash = hashlib.md5(content).hexdigest()
return file_hash
def find_duplicate_files(folder1, folder2, output_folder):
# 创建一个字典来保存文件哈希值和对应的文件路径
file_dict = {}
# 遍历第一个文件夹中的所有文件,并计算哈希值
for root, dirs, files in os.walk(folder1):
for file in files:
file_path = os.path.join(root, file)
file_hash = get_file_hash(file_path)
if file_hash not in file_dict:
file_dict[file_hash] = file_path
# 遍历第二个文件夹中的所有文件,并检查哈希值是否存在于字典中
# 如果存在,则将文件复制到输出文件夹中
for root, dirs, files in os.walk(folder2):
for file in files:
file_path = os.path.join(root, file)
file_hash = get_file_hash(file_path)
if file_hash in file_dict:
# 创建输出文件夹(如果不存在)
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 复制重复文件到输出文件夹中
shutil.copy(file_path, output_folder)
if __name__ == '__main__':
folder1 = 'path/to/folder1' # 第一个文件夹路径
folder2 = 'path/to/folder2' # 第二个文件夹路径
output_folder = 'path/to/output' # 输出文件夹路径
find_duplicate_files(folder1, folder2, output_folder)
请将 path/to/folder1、path/to/folder2 和 path/to/output 替换为实际的文件夹路径。这段代码将在输出文件夹中创建一个包含所有重复文件的副本
原文地址: https://www.cveoy.top/t/topic/hMxh 著作权归作者所有。请勿转载和采集!