Python文件夹md5去重保留长文件名案例
时间: 2023-08-01 18:11:31 浏览: 43
好的,如果你想要对文件夹中的文件进行md5校验和去重,并保留文件名比较长的文件,可以按照以下步骤进行操作:
1. 使用 hashlib 模块计算文件的md5校验和,并将计算结果存储在一个字典中。字典的键为md5校验和,值为文件路径。
```python
import os
import hashlib
folder_path = "/path/to/folder"
file_dict = {}
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
with open(file_path, "rb") as f:
md5 = hashlib.md5(f.read()).hexdigest()
if md5 in file_dict:
os.remove(file_path)
else:
file_dict[md5] = file_path
```
2. 遍历字典,找到文件名比较长的文件,并将其复制到一个新的文件夹中。
```python
new_folder_path = "/path/to/new_folder"
if not os.path.exists(new_folder_path):
os.makedirs(new_folder_path)
for md5, file_path in file_dict.items():
file_name = os.path.basename(file_path)
if len(file_name) > 10: # 假设长度超过10的文件名为“比较长的文件名”
new_file_path = os.path.join(new_folder_path, file_name)
shutil.copyfile(file_path, new_file_path)
```
3. 完成去重并保留长文件名的操作。
值得注意的是,这种方法可能会导致一些文件被误判为重复文件,因为md5校验和有一定的概率会出现碰撞。如果你需要更高的去重精度,可以使用其他的校验和算法,比如sha256、sha512等。