我需要一个利用哈希值检查并提取两个文件夹内部所有重复文件的python代码并将重复文件提取到单独的文件夹内告诉我这个代码检测500g大小的文件大概需要多长时间
以下是一个利用哈希值检查并提取两个文件夹内部所有重复文件的Python代码:
import os
import hashlib
import shutil
def get_file_hash(file_path):
# 读取文件内容并计算哈希值
with open(file_path, 'rb') as f:
data = f.read()
file_hash = hashlib.md5(data).hexdigest()
return file_hash
def find_duplicate_files(folder1, folder2, output_folder):
# 存储文件哈希值及对应路径
hash_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 in hash_dict:
hash_dict[file_hash].append(file_path)
else:
hash_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 hash_dict:
hash_dict[file_hash].append(file_path)
else:
hash_dict[file_hash] = [file_path]
# 提取重复文件到输出文件夹
for hash_value, file_list in hash_dict.items():
if len(file_list) > 1:
for file_path in file_list:
dest_path = os.path.join(output_folder, os.path.basename(file_path))
shutil.copy2(file_path, dest_path)
# 示例用法
folder1 = 'path/to/folder1'
folder2 = 'path/to/folder2'
output_folder = 'path/to/output_folder'
find_duplicate_files(folder1, folder2, output_folder)
关于代码检测500GB大小的文件需要多长时间的问题,这取决于以下几个因素:
- 硬件性能:CPU、磁盘读写速度等硬件因素都会影响代码运行时间。
- 文件数量和大小:文件越多、越大,需要计算哈希值的时间就越长。
- 代码性能:代码的优化程度也会影响运行时间。
由于以上因素的影响,很难给出一个准确的时间估计。一般情况下,处理500GB大小的文件可能需要几个小时甚至更长时间
原文地址: https://www.cveoy.top/t/topic/hMxH 著作权归作者所有。请勿转载和采集!