python中用md5值去重保留长文件名怎么写
时间: 2023-10-02 13:07:37 浏览: 150
你可以使用Python的hashlib模块来计算文件的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值来去重,同时保留原始文件名。
阅读全文