python对文件夹内文件去重
昨天无聊写了一个百度图片爬虫,测试了一下搜索“斗图”。一下给我下了3000多个图片,关键是有一半以上重复的。what a fuck program !
好吧,今天写一个文件去重功能,贴上来。
python3.6开发,在Windows下需要安装vc2015动态库。程序已经打包好,下载地址: http://pan.baidu.com/s/1bpalugf 密码:kfk4
#/usr/bin/env python
#Guoyabin
#-*- coding:utf-8 -*-
import os,hashlib def filecount():
filecount=int(os.popen('dir /B |find /V /C ""').read())
return(filecount) def md5sum(filename):
f=open(filename, 'rb')
md5=hashlib.md5()
while True:
fb = f.read(8096)
if not fb:
break
md5.update(fb)
f.close()
return (md5.hexdigest()) def delfile():
all_md5={}
filedir=os.walk(os.getcwd())
for i in filedir:
for tlie in i[2]:
if md5sum(tlie) in all_md5.values():
os.remove(tlie)
else:
all_md5[tlie]=md5sum(tlie) if __name__=='__main__':
keyword=input('\n请把本程序放到要去重的文件夹内,并按回车继续\n\n')
oldf=filecount()
print('去重前有',oldf,'个文件\n\n\n请稍等正在为您删除重复文件...')
delfile()
print('\n\n去重后剩',filecount(),'个文件')
print('\n\n一共帮您删除了',oldf-filecount(),'个文件\n\n')
keyword=input('请按回车退出')
无耻的求一下赞助


python对文件夹内文件去重的更多相关文章
- 监听Documents文件夹内文件发生改变
// 当Documents内文件发生改变时,启动计时器,每秒计算一次大小,当大小不发生改变时说明传输完毕,就开始刷新. @property (nonatomic, strong) NSTimer *t ...
- 个人永久性免费-Excel催化剂功能第83波-遍历文件夹内文件信息特别是图像、音视频等特有信息
在过往的功能中,有体现出在Excel上管理文件的极大优势,在文件的信息元数据中,有图片和音视频这两类特有的属性数据,此篇对过往功能的一个补充,特别增加了图片和音视频信息的遍历功能. 使用场景 在文件管 ...
- C#获取文件夹内文件包括子文件(递归)实例
这个在我工作上,写了一次工具项目,用上的. static ArrayList FileList = new ArrayList();//这个必须写在方法外, static ArrayList GetA ...
- Linux得到某个文件夹内文件的个数
panonum=$(find . -type f | wc -l)
- 用Python来实现列举某个文件夹内所有的文件列表
用Python来实现列举某个文件夹内所有的文件列表.吾八哥我动手写代码之前分析了下,遍历一个文件夹,肯定是需要用到os模块了,查阅模块帮助信息,可知os.listdir()方法可以列举某个文件夹内的所 ...
- python实现某目录下将多个文件夹内的文件复制到一个文件夹中
现实生活中,我们经常有这样的需求,如下图,有三个文件夹,文件夹1内含有1.txt文件 文件夹2中内含有2.txt文件,文件夹3中含有3.txt文件.我们有时候需要把1.txt, 2.txt, 3.tx ...
- Python win32com模块 合并文件夹内多个docx文件为一个docx
Python win32com模块 合并文件夹内多个docx文件为一个docx #!/usr/bin/env python # -*- coding: utf-8 -*- from win32com. ...
- Python小练习:批量删除多个文件夹内的相同文件
应用场景: 下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除该文件 使用环境:win7,python3.6 代码: 1.直接用for循环 由于os.walk()方法自带 ...
- Python 的 pyinotify 模块 监控文件夹和文件的变动
官方参考: https://github.com/seb-m/pyinotify/wiki/Events-types https://github.com/seb-m/pyinotify/wiki/I ...
随机推荐
- 学习javaScript必知必会(6)~类、类的定义、prototype 原型、json对象
一.定义类:使用的是funciton,因为在js中没有定义类的class语句,只有function. ■ 举例: //定义一个Person类(通过类的无参构造函数定义类) function Perso ...
- 一文搞清楚 DNS 的来龙去脉
目录 美国霸权 ICANN:互联网界的联合国 IP 地址分配 域名解析架构 分层架构: DNS 缓存: 根 DNS 服务器: 顶级 DNS 服务器(TLD): 权威 DNS 服务器: 本地 DNS: ...
- 【刷题-LeetCode】238. Product of Array Except Self
Product of Array Except Self Given an array nums of n integers where n > 1, return an array outpu ...
- 【记录一个问题】tesla model 3在行驶1000公里后,行驶中踩下刹车出现告警“同时踩下制动踏板和电门”
问题的描述如下:1.行驶1000公里左右后出现,之前没有:2.超过一定速度后再踩刹车出现此告警,如果低速环境频繁起停则不会出现:3.告警的意思是使用者同时踩下了刹车和电门,第一次电话客服反馈--检查脚 ...
- gin框架中HTTP请求和参数的解析
1. 方法一: 通用的处理方法---Handle package main import ( "fmt" "github.com/gin-gonic/gin" ...
- K8s 资源配额管理对象 ResourcesQuota
Kubernetes 是一个多租户平台,更是一个镜像集群管理工具.一个 Kubernetes 集群中的资源一般是由多个团队共享的,这时候经常要考虑的是如何对这个整体资源进行分配.在 kubernete ...
- WebSphere--WAS概念和原理解析
WebSphere--WAS概念和原理解析--tigergao收录于2021/04/25
- Python中的魔术方法
什么是魔术方法? 在Python中,所有用"__"包起来的方法,都称为[魔术方法]. 魔术方法一般是为了让显示器调用的,你自己并不需要调用它们. __init__:初始化函数 这个 ...
- Java高并发下多线程编程
1.创建线程 Java中创建线程主要有三种方式: 继承Thread类创建线程类: 定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此也把run方法称为 ...
- Java方法和数组
方法 什么是方法 Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 设计方法的原则:方法的本意是功能块 ...