python中用md5值去重保留文件名长的文件怎么写
时间: 2024-01-07 08:02:56 浏览: 85
要在Python中使用MD5值去重并保留文件名较长的文件,你可以将计算MD5值的函数与文件复制函数结合起来。以下是一个示例代码,它可以计算文件的MD5值,并将文件复制到以MD5值命名的文件夹中,同时保留文件名较长的文件:
```python
import os
import hashlib
import shutil
# 要去重的文件夹路径
src_folder = "/path/to/src/folder"
# 去重后的文件夹路径
dst_folder = "/path/to/dst/folder"
# 遍历文件夹中的所有文件
for file_name in os.listdir(src_folder):
file_path = os.path.join(src_folder, file_name)
if os.path.isfile(file_path):
# 计算文件的MD5值
with open(file_path, 'rb') as f:
md5 = hashlib.md5(f.read()).hexdigest()
# 在目标文件夹中创建以MD5值命名的文件夹
dst_path = os.path.join(dst_folder, md5)
if not os.path.exists(dst_path):
os.makedirs(dst_path)
# 将文件复制到目标文件夹中,并保留文件名
dst_file_path = os.path.join(dst_path, file_name)
shutil.copyfile(file_path, dst_file_path)
```
在这个示例代码中,我们首先遍历源文件夹中的所有文件,计算每个文件的MD5值。然后,我们在目标文件夹中创建一个以MD5值命名的文件夹,并将文件复制到该文件夹中。在复制文件时,我们使用源文件的完整文件名来保留文件名较长的文件。这样,我们就可以用MD5值来去重,同时保留文件名较长的文件。
阅读全文