`

删除一个目录下内容相同的文件

阅读更多
# -*- coding: utf-8 -*- 

''' 删除一个目录下内容相同的文件 '''

import shutil
import md5
import os
from time import clock as now

#得到字符串的md5
def getmd5(content):
	return md5.new(content).hexdigest();
def main():
	path=raw_input("path:")
	all_md5={};
	all_size={};
	#遍历文件夹
	for file in os.listdir(path):
		real_path = os.path.join(path,file);
		#文件判断
		if os.path.isfile(real_path) == True:
			#文件大小
			size = os.stat(real_path).st_size
			#文件大小已存在,可能存在一样的文件
			if size in all_size.keys():
				#文件MD5
				filemd5 = getmd5(open(real_path,'rb').read());
				if all_size[size][1]='':
					all_size[size][1] = filemd5;
				#判断是否存在当前MD5的文件大小
				if filemd5 in all_size[size]:
					#删除
					print "delete file:",file;
				else:
					#设置size位置为最新的md5值
					all_size[size] = filemd5;
			else:	
				#第一次出现size的情况
				all_size[size] = [real_path,''];

if __name__=='__main__':	
	main()
分享到:
评论

相关推荐

    python删除文件夹里面所有重复的文件(大小,内容,文件名相同)、python提取所有文件夹名和文件名、python提取

    python删除文件夹里面所有重复的文件(大小,内容,文件名相同)、python提取所有文件夹名和文件名、python提取一级目录内所有文件名,二级文件夹内的文件不提取

    linux 不删除文件,清空文件中内容的命令

    - `rm -r directory`:递归删除目录及其内容,如果有子目录或文件,会提示确认。 - `rm -rf directory`:强制递归删除目录及其内容,不提示确认,非常危险,需谨慎使用。 关于用户管理,这里提到了几个命令: - `su...

    用来删除目录和其下所有文件及子目录

    在Windows操作系统中,有一个名为`deltree`的命令,它用于递归地删除指定的目录及其包含的所有内容。不过,`deltree`在较新的Windows版本中已经被`rmdir /s /q`命令所取代,这个命令具有相同的功能,且更符合现代...

    删除内容完全一样的文件

    哈希值是通过特定算法(如MD5)计算出的一个固定长度的数字摘要,如果两个文件的哈希值相同,则说明它们内容完全一样。 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能将任意长度的数据转化为固定...

    c++遍历文件夹及其子文件夹所有文件 并输出文件路径和文件内容

    在旧版C++中,`opendir()`函数打开目录,`readdir()`读取下一个条目,`closedir()`关闭目录。 2. **递归遍历子目录** 当遇到子目录时,需要递归调用相同的功能。这可以通过检查`is_directory()`(C++17)或`d_type...

    DOS下进行文件批量删除

    在给定的部分内容中,我们可以看到一个完整的批处理脚本示例,它首先通过`@ECHO off`和`cls`命令准备执行环境,然后列出了多个要删除的文件,并使用了`del`命令的不同参数组合来实现批量删除。最后,通过`ping`和`...

    Directory Compare(比较两个目录的内容)

    "Directory Compare"是一款用于比较两个目录内容的工具,它的主要功能是帮助用户找出两个文件夹中的相同、不同或缺失的文件。在IT领域,这样的工具非常实用,尤其是在数据同步、备份验证、版本控制或者文件整理时。...

    vb监控一个指定的目录当这个目录有文件删除或有文件增加监控程序将显示相关信息。(

    标题中的“vb监控一个指定的目录当这个目录有文件删除或有文件增加监控程序将显示相关信息”是指使用Visual Basic(VB)编程语言开发一个应用程序,该程序能够实时监控用户指定的文件目录,当该目录下发生文件添加或...

    为多个文本文件做内容批量替换

    右键点击选择“添加目录”,将那个文件夹添加进来,该目录下的所有文件就直接添加进来了,省去了一个一个添加的麻烦。  在“查找”栏内输入欲查找的内容,在“替换”栏里输入欲替换的内容,点击“执行替换”,默认...

    模拟多级目录的文件系统

    7. **文件系统接口**:为了与用户交互,文件系统需要提供一组API或命令行工具,如`mkdir`创建目录,`touch`创建文件,`cp`复制文件,`mv`移动文件,`rm`删除文件,以及`cat`查看文件内容等。 8. **错误处理和异常**...

    重复文件去除,清理重复文件

    1. 扫描:使用专业的去重工具,可以扫描指定的目录或整个硬盘,查找内容相同但文件名不同的文件。工具通常会对比文件的哈希值(如MD5或SHA-1),这是一种快速且准确的判断文件内容是否一致的方法。 2. 检视与选择:...

    批量复制文件并自动删除重复文件

    我们可以读取文件内容并计算哈希值,相同的哈希值代表文件内容相同。例如,使用SHA256算法计算哈希值: ```csharp using System.Security.Cryptography; using System.IO; public static string CalculateFileHash...

    VB文件系统实例-文件系统全家福

    比较两个文件是否相同 查找目录全部文件大小 查找文件 从全路径名中获得文件扩展名 从全路径名中提取文件名 二进制复制文件 获取当前目录下所有文件和文件夹 记载Windows使用的时间 检测文件是否存在 建立多级目录 ...

    操作系统简单二级文件系统

    ①.Dir:显示目录内容命令,显示当前目录下的文件和子目录。 ②.Md:创建目录操作。 ③.Create:创建文件,在当前目录下创建一个文件。 ④. all:显示从根目录开始的所有目录和文件及其层次结点。 ⑤.Cd:改变目录。 ...

    模拟UNIX文件系统

    6. **目录操作**:`cd`和`ls`命令分别用于切换目录和列出目录内容。模拟时,需要处理目录结构的遍历,以及根据路径解析查找文件或目录。 7. **文件重命名**:`rename`函数可以更改文件名。这涉及到更新目录中的条目...

    查找相同文件的工具软件

    "查找相同文件的工具软件"正是为了这个目的而设计的。这类软件能够帮助用户高效地定位并处理那些重复、相似或相近的文件,从而释放宝贵的磁盘空间。 首先,我们需要理解“查找”在这一上下文中的含义。在计算机系统...

    CheckSame 检测相同文件

    "CheckSame 检测相同文件"是一款实用工具,主要用于帮助用户在指定的文件夹及其子目录中查找并识别重复的文件。这个程序的核心功能是通过比较文件内容来确定是否为重复文件,而不是仅仅依赖文件名,这样可以避免因...

    重复文件删除工具Mac OS X (X86)

    在Mac OS X (X86)平台上,重复文件删除是一个常见的需求,特别是在处理大量数据、进行系统清理或者优化硬盘空间时。"Duplicate File Eraser" 是一款专为此目的设计的工具,它能有效地帮助用户找到并删除那些占用空间...

    python删除文件夹里面所有重复的文件(大小,内容,文件名相同).rar

    这个任务涉及到对文件的大小、内容和文件名进行比较,以确保找出并删除所有完全相同的副本。下面将详细介绍如何实现这个功能。 首先,我们需要遍历指定文件夹中的所有文件。Python的`os`模块提供了`os.walk()`函数...

    UNIX目录及文件操作命令

    - `-R`: 递归列出子目录内容。 - `-a`: 列出所有文件,包括隐藏文件(以`.`开头的文件)。 - `-d`: 如果参数是目录,则仅列出目录名而不是其内容,通常与 `-l` 选项一起使用来显示目录属性。 - `-C`: 多列显示...

Global site tag (gtag.js) - Google Analytics