python 文件查重
时间: 2024-01-10 18:41:50 浏览: 25
可以使用哈希算法对文件进行查重。
具体步骤如下:
1. 遍历指定目录下的所有文件;
2. 对每个文件计算哈希值;
3. 如果哈希值已经存在,则说明该文件重复,记录重复的文件路径;
4. 如果哈希值不存在,则将该哈希值记录下来。
以下是一个 Python 实现:
```python
import os
import hashlib
def get_file_hash(file_path):
with open(file_path, 'rb') as f:
content = f.read()
md5 = hashlib.md5(content)
return md5.hexdigest()
def find_duplicate_files(dir_path):
file_hash_dict = {}
duplicate_files = []
for root, dirs, files in os.walk(dir_path):
for file_name in files:
file_path = os.path.join(root, file_name)
file_hash = get_file_hash(file_path)
if file_hash in file_hash_dict:
duplicate_files.append(file_path)
else:
file_hash_dict[file_hash] = file_path
return duplicate_files
if __name__ == '__main__':
dir_path = '/path/to/dir'
duplicate_files = find_duplicate_files(dir_path)
print(duplicate_files)
```
其中,`get_file_hash` 函数使用 MD5 算法计算文件的哈希值,`find_duplicate_files` 函数遍历指定目录下的所有文件,并记录每个文件的哈希值,如果发现哈希值已经存在,则说明该文件重复,记录重复的文件路径。最后,程序输出所有重复的文件路径。