最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python查找指定具有相同內(nèi)容文件的方法

 更新時(shí)間:2015年06月28日 12:34:11   作者:秋風(fēng)秋雨  
這篇文章主要介紹了python查找指定具有相同內(nèi)容文件的方法,涉及Python針對(duì)文件操作的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了python查找指定具有相同內(nèi)容文件的方法。分享給大家供大家參考。具體如下:

python代碼用于查找指定具有相同內(nèi)容的文件,可以同時(shí)指定多個(gè)目錄
調(diào)用方式: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

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python實(shí)現(xiàn)批量修改文件名代碼

    python實(shí)現(xiàn)批量修改文件名代碼

    本文給大家分享的是一段僅僅10行代碼就實(shí)現(xiàn)了批量修改文件名的python腳本,推薦給大家,有需要的小伙伴可以參考下
    2017-09-09
  • Python使用Turtle庫(kù)繪制一棵西蘭花

    Python使用Turtle庫(kù)繪制一棵西蘭花

    今天小編就為大家分享一篇Python使用Turtle庫(kù)繪制一棵西蘭花,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Windows直接運(yùn)行python程序的兩種方法

    Windows直接運(yùn)行python程序的兩種方法

    本文主要介紹了Windows直接運(yùn)行python程序,包括新建bat腳本和新建vbs腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 解決Pytorch 訓(xùn)練與測(cè)試時(shí)爆顯存(out of memory)的問(wèn)題

    解決Pytorch 訓(xùn)練與測(cè)試時(shí)爆顯存(out of memory)的問(wèn)題

    今天小編就為大家分享一篇解決Pytorch 訓(xùn)練與測(cè)試時(shí)爆顯存(out of memory)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 將labelme格式數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的coco數(shù)據(jù)集格式方式

    將labelme格式數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的coco數(shù)據(jù)集格式方式

    今天小編就為大家分享一篇將labelme格式數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的coco數(shù)據(jù)集格式方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python實(shí)現(xiàn)視頻分幀效果

    python實(shí)現(xiàn)視頻分幀效果

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)視頻分幀效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Pandas_cum累積計(jì)算和rolling滾動(dòng)計(jì)算的用法詳解

    Pandas_cum累積計(jì)算和rolling滾動(dòng)計(jì)算的用法詳解

    今天小編就為大家分享一篇Pandas_cum累積計(jì)算和rolling滾動(dòng)計(jì)算的用法詳解,具有好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Django中l(wèi)og日志記錄的最佳實(shí)踐

    Django中l(wèi)og日志記錄的最佳實(shí)踐

    Django中的log日志記錄是一個(gè)非常重要的功能,可以幫助開(kāi)發(fā)者快速定位和解決問(wèn)題。本文將介紹Django中l(wèi)og日志記錄的基本概念和使用方法,并提供一些最佳實(shí)踐,幫助開(kāi)發(fā)者更好地利用log日志記錄功能。
    2023-04-04
  • PyTorch使用CNN實(shí)現(xiàn)圖像分類

    PyTorch使用CNN實(shí)現(xiàn)圖像分類

    圖像分類是計(jì)算機(jī)視覺(jué)領(lǐng)域的一項(xiàng)基本任務(wù),也是深度學(xué)習(xí)技術(shù)的一個(gè)常見(jiàn)應(yīng)用,近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)(cnn)和PyTorch庫(kù)的結(jié)合由于其易用性和魯棒性已經(jīng)成為執(zhí)行圖像分類的流行選擇,所以本文給大家介紹了PyTorch使用CNN實(shí)現(xiàn)圖像分類的示例,需要的朋友可以參考下
    2025-03-03
  • Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧詳解(1)

    Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧詳解(1)

    這篇文章主要為大家詳細(xì)介紹了Python中的棧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論

兖州市| 静海县| 涿鹿县| 淮南市| 吴川市| 泰宁县| 桃园县| 枞阳县| 资兴市| 邛崃市| 镇沅| 泰来县| 利辛县| 喜德县| 交口县| 庆安县| 林甸县| 二连浩特市| 武山县| 苍南县| 临泉县| 汾西县| 旅游| 大渡口区| 陇西县| 合山市| 杭锦旗| 高雄县| 新宁县| 昭苏县| 岑巩县| 大余县| 绥棱县| 渝北区| 前郭尔| 徐州市| 澄迈县| 玛多县| 台中县| 三河市| 新郑市|