python写一个将文件夹里的图片去重,给出详细的代码
时间: 2024-10-09 13:00:50 浏览: 36
python实现两个文件夹的同步
在Python中,我们可以使用`os`模块来操作文件和目录,同时结合`hashlib`库来生成文件的哈希值,通过比较哈希值判断图片是否重复。以下是一个简单的脚本示例,它遍历指定文件夹下的所有图片,并保留每个图片第一次出现的情况:
```python
import os
import hashlib
def get_image_hash(file_path):
"""计算图片文件的SHA256哈希值"""
with open(file_path, 'rb') as img_file:
return hashlib.sha256(img_file.read()).hexdigest()
def remove_duplicates(directory):
"""去除文件夹内图片的重复项"""
file_list = []
hash_dict = {}
for filename in os.listdir(directory):
if filename.endswith(('.jpg', '.png', '.jpeg')):
file_path = os.path.join(directory, filename)
file_hash = get_image_hash(file_path)
# 如果文件未存在于字典中,添加到列表并保存哈希值
if file_hash not in hash_dict:
file_list.append(file_path)
hash_dict[file_hash] = file_path
else:
print(f"发现重复文件: {filename} - 删除")
# 仅保留字典中的非重复文件路径
return [file for file in file_list]
# 使用函数处理特定目录
directory_to_check = '/path/to/your/image/folder'
unique_images = remove_duplicates(directory_to_check)
阅读全文