前天不小心把硬盘格式化了,丢了好多照片,后来用Recuva这款软件成功把文件恢复过来,可是恢复的文件中有好多重复的文件和无法打开的图片,所以写了两个python的小程序用来解决这个问题

删除相同文件:

#coding=utf-8

import os

import os.path

import Image

import hashlib

def get_md5(filename):

m = hashlib.md5()

mfile = open(filename, "rb")

m.update(mfile.read())

mfile.close()

md5_value = m.hexdigest()

return md5_value

if __name__ == '__main__':

ipath = "E:\\20161019_photo"

uipath = unicode(ipath, "utf8")

for parent, dirnames, filenames in os.walk(uipath):

md5_list = []

#for dirname in dirnames: # 输出文件夹信息

#print "parent is:" + parent

#print "dirname is: " + dirname

for filename in filenames:

#print "parent is :" + parent

#print "filename is:" + filename

#print "md5_list is : "

if(get_md5(os.path.join(parent, filename)) in md5_list):

os.remove(os.path.join(parent, filename))

else:

md5_list.append(get_md5(os.path.join(parent, filename)))

#print md5_list

#md5 = []

删除无法打开文件:

#coding=utf-8

import os

import os.path

import Image

import hashlib

def get_md5(filename):

m = hashlib.md5()

mfile = open(filename, "rb")

m.update(mfile.read())

mfile.close()

md5_value = m.hexdigest()

return md5_value

if __name__ == '__main__':

ipath = "E:\\20161019_photo"

uipath = unicode(ipath, "utf8")

for parent, dirnames, filenames in os.walk(uipath):

for filename in filenames:

name ,ext = os.path.splitext(filename)

if((ext == ".png") or (ext == ".tif") or (ext == ".gif")):

os.remove(os.path.join(parent, filename))

else:

if(ext == ".jpg"):

try:

fp = open(os.path.join(parent, filename), 'rb')

img = Image.open(fp)

except:

fp.close()

os.remove(os.path.join(parent, filename))

else:

continue

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: python删除文件夹下相同文件和无法打开的图片

本文地址: http://www.cppcns.com/jiaoben/python/265631.html

python删除文件夹中的jpg_python删除文件夹下相同文件和无法打开的图片相关推荐

  1. debian 文件夹中文件大小_debian 记录用到的命令 文件夹 目录等操作

    apt-get update && apt-get -f upgrade apt-get install php5-imagick extension=imagick.so apt-g ...

  2. 如何批量在文件夹中建立php,怎样快速实现批量建立文件夹 电脑一次性快速批量新建多个文件夹的方法...

    今天给大家带来怎样快速实现批量建立文件夹,电脑一次性快速批量新建多个文件夹的方法,让您轻松解决问题. 如何快速实现批量建立文件夹方法 电脑如何一次性快速批量新建多个文件夹.我们在使用电脑的时候,总是会 ...

  3. mysql根据id删除数据sql语句_删除数据sql-sql数据库删除数据-sql中实现数据删除的语句是...

    怎样用sql语言删除一行数据 在SQL数据库中删除记录一般使用Delete语句,下面就将为您介绍SQL中用于删除记录的DELETE语句的语法 DELETE FROM 表名称 WHERE 列名称 = 值 ...

  4. java set遍历删除元素_java中循环遍历删除List和Set集合中元素的方法

    今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录 ...

  5. javaweb上传文件_javaWeb中,如何通过CommonsFileUpload组件上传文件

    大家好,欢迎来到雄雄的小课堂,今天给大家分享的是<javaWeb中,如何通过Commons-FileUpload组件上传文件> 前言:文件上传大家都不陌生,在这个互联网飞速发展的时代,共享 ...

  6. 安卓读取mysql数据库文件路径_Android开发实现读取assets目录下db文件的方法示例...

    本文实例讲述了Android开发实现读取assets目录下db文件的方法.分享给大家供大家参考,具体如下: 最近准备打算写一个关于天气预报的app,偶然的机会在一大神的博客上看到了一个获取天气的api ...

  7. linux查看文件元数据,Linux切换目录、查看目录下的文件、文件类型介绍和查看文件的元数据信息...

    本篇博客介绍几个Linux的基础命令:写的如有不足,还望读者不吝赐教! 切换目录 cd(ChangeDirectory)切换工作目录 语法:cd  [要切换的目录] cd:进入用户的宿主目录(回家) ...

  8. python删除文件夹中的jpg_Python简单删除目录下文件以及文件夹的方法

    本文实例讲述了python简单删除目录下文件以及文件夹的方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python import os import shutil fileli ...

  9. 删除文件夹中包含的子文件夹及文件

    //删除目录和目录下得所有文件和文件夹 procedure DeleteDir(sDirectory, DotDelDir: String); var   sr: TSearchRec;   sPat ...

最新文章

  1. java用爬虫爬一个页面_使用Java写一个简单爬虫爬取单页面
  2. Java Streams,第 1 部分: java.util.stream 库简介
  3. mysql 5.6.30 添加用户_mysql5.6创建账户不能本地登录
  4. Android—RxJava库知识
  5. 工业级光纤收发器一般能正常使用多长时间?
  6. json传输二进制的方案【转】
  7. C语言 文件的基本介绍
  8. 数据结构--链表--单链表中环的检测,环的入口,环的长度的计算
  9. 安恒杯月赛 babypass getshell不用英文字母和数字
  10. CN笔记:第二章 物理层
  11. tensorflow之读取jpg图像长和宽
  12. 百度贴吧客户端(Android)网络通信行为分析
  13. Android8-Settings-BlueTooth
  14. 光伏储能容量优化MATLAB论坛,微电网中电池储能的容量配置及优化
  15. http://nian.so/#网站的拓展工具编写
  16. 如何将平板设置为笔记本的扩展屏
  17. 6-7 BMI计算(类与对象) (10分)
  18. MagikEye将在CES上展示Invertible Light™图像传感器技术
  19. android打印功能,Android通过OTG线连接打印机实现打印功能
  20. Qt 设置Widget背景图片并实现透明度的三种方式

热门文章

  1. 机器学习基础(四十九)—— 总结
  2. 机器学习基础(七)——sigmoid 函数的性质
  3. Scala 类型、数值类型及类型转换
  4. 学了python做什么自由职业者_我又有一位程序员朋友成了自由职业者
  5. 简单python脚本实例-python常用运维脚本实例
  6. siri不能识别语音
  7. websettings 哪里设置_江阴整站优化哪里好
  8. Vue前后端交互实现图书管理功能
  9. linux vi代码高亮,linux Vi编辑器代码高亮设置及永久显示行号的方法
  10. ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分Dialog)