安基网 首页 存档 技术 查看内容

python3的文件去重

2018-3-30 13:00| 投稿: winskyer |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 由于各种原因现在开始使用3.6来代替原来的2.7版本,在此分享一段Python3的文件去重代码。如下: import hashlibimport os class DirProc(): def __init__(self): self.main_dir = "C://software//导数据//mtm//img ...

由于各种原因现在开始使用3.6来代替原来的2.7版本,在此分享一段Python3的文件去重代码。如下:

import hashlib
import os


class DirProc():
def __init__(self):
self.main_dir = "C://software//导数据//mtm//imgs"

def md5(self, fname):
if os.path.exists(fname):
hash_md5 = hashlib.md5()
with open(fname, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()

def remove(self, fpath1, fpath2):
md51 = self.md5(fpath1)
md52 = self.md5(fpath2)
if md51 == md52:
os.remove(fpath1)
print("去重", fpath1)

def remove_duplicate(self):
dir_list = os.listdir(self.main_dir)
for name in dir_list:
sub_dir = self.main_dir "//" name;
file_list = os.listdir(sub_dir)
for fname in file_list:
for sub_fname in file_list:
if fname == sub_fname:
continue
f_dir = sub_dir "//" fname;
f_sub_dir = sub_dir "//" sub_fname;
self.remove(f_dir, f_sub_dir)


dirProc = DirProc()
dirProc.remove_duplicate()





Tag标签:

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

 最新
返回顶部