本文实例讲述了python查找指定具有相同内容文件的方法。分享给大家供大家参考。具体如下:
python代码用于查找指定具有相同内容的文件,可以同时指定多个目录
调用方式:python doublesdetector.py c:\;d:\;e:\ > doubles.txt
# Hello, this script is written in Python - http://www.python.org # doublesdetector.py 1.0p import os, os.path, string, sys, sha message = """ doublesdetector.py 1.0p This script will search for files that are identical (whatever their name/date/time). Syntax : python %s <directories> where <directories> is a directory or a list of directories separated by a semicolon (;) Examples : python %s c:\windows python %s c:\;d:\;e:\ > doubles.txt python %s c:\program files > doubles.txt This script is public domain. Feel free to reuse and tweak it. The author of this script Sebastien SAUVAGE <sebsauvage at sebsauvage dot net> http://sebsauvage.net/python/ """ % ((sys.argv[0], )*4) def fileSHA ( filepath ) : """ Compute SHA (Secure Hash Algorythm) of a file. Input : filepath : full path and name of file (eg. 'c:\windows\emm386.exe') Output : string : contains the hexadecimal representation of the SHA of the file. returns '0' if file could not be read (file not found, no read rights...) """ try: file = open(filepath,'rb') digest = sha.new() data = file.read(65536) while len(data) != 0: digest.update(data) data = file.read(65536) file.close() except: return '0' else: return digest.hexdigest() def detectDoubles( directories ): fileslist = {} # Group all files by size (in the fileslist dictionnary) for directory in directories.split(';'): directory = os.path.abspath(directory) sys.stderr.write('Scanning directory '+directory+'...') os.path.walk(directory,callback,fileslist) sys.stderr.write('\n') sys.stderr.write('Comparing files...') # Remove keys (filesize) in the dictionnary which have only 1 file for (filesize,listoffiles) in fileslist.items(): if len(listoffiles) == 1: del fileslist[filesize] # Now compute SHA of files that have the same size, # and group files by SHA (in the filessha dictionnary) filessha = {} while len(fileslist)>0: (filesize,listoffiles) = fileslist.popitem() for filepath in listoffiles: sys.stderr.write('.') sha = fileSHA(filepath) if filessha.has_key(sha): filessha[sha].append(filepath) else: filessha[sha] = [filepath] if filessha.has_key('0'): del filessha['0'] # Remove keys (sha) in the dictionnary which have only 1 file for (sha,listoffiles) in filessha.items(): if len(listoffiles) == 1: del filessha[sha] sys.stderr.write('\n') return filessha def callback(fileslist,directory,files): sys.stderr.write('.') for fileName in files: filepath = os.path.join(directory,fileName) if os.path.isfile(filepath): filesize = os.stat(filepath)[6] if fileslist.has_key(filesize): fileslist[filesize].append(filepath) else: fileslist[filesize] = [filepath] if len(sys.argv)>1 : doubles = detectDoubles(" ".join(sys.argv[1:])) print 'The following files are identical:' print '\n'.join(["----\n%s" % '\n'.join(doubles[filesha]) for filesha in doubles.keys()]) print '----' else: print message
希望本文所述对大家的Python程序设计有所帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Dreamweaver Mac版
시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
