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

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

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

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

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

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

相關(guān)文章

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

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

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

    Python使用Turtle庫繪制一棵西蘭花

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

    Windows直接運行python程序的兩種方法

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

    解決Pytorch 訓練與測試時爆顯存(out of memory)的問題

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

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

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

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

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

    Pandas_cum累積計算和rolling滾動計算的用法詳解

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

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

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

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

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

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

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

最新評論

漳平市| 廊坊市| 龙陵县| 云梦县| 子长县| 宜阳县| 曲阜市| 耿马| 万山特区| 萨嘎县| 永吉县| 体育| 邢台县| 澳门| 宜黄县| 宣城市| 乌拉特中旗| 洛川县| 怀化市| 乌兰察布市| 黄大仙区| 永定县| 含山县| 黔南| 康乐县| 宝兴县| 亳州市| 丘北县| 松潘县| 昌吉市| 乌拉特后旗| 理塘县| 镇原县| 阳信县| 榆社县| 普陀区| 枣庄市| 凌云县| 本溪| 资溪县| 罗田县|