<label id="bh7tp"><big id="bh7tp"></big></label>

<em id="bh7tp"><tr id="bh7tp"><u id="bh7tp"></u></tr></em>
<th id="bh7tp"></th>

<li id="bh7tp"><acronym id="bh7tp"></acronym></li>
  • <em id="bh7tp"></em>

    <tbody id="bh7tp"><pre id="bh7tp"></pre></tbody>
  • Python教程自學網歡迎您來學習!
    當前位置: 首頁 > Pyhon開發 > python如何判斷文件夾內的重復圖片

    python如何判斷文件夾內的重復圖片

       

    python如何判斷文件夾內的重復圖片

    文件夾內的重復圖片判斷步驟

    1、首先將所有的圖片按照圖片大小(byte)進行分類,然后再進行分類比較。

    2、重復圖片很有可能連續出現(因為重復圖片大小相同)

    如果要判斷文件夾中是否有相同的圖片,則需要對文件夾中的所有圖片進行分類,并逐一判斷兩張圖片是否相同。

    如果文件夾中有1000張圖片,則第一張圖片需要與剩余的999張圖片進行比較,第二張圖片需要與剩余的998張圖片進行比較,第三張圖片需要與剩余的997張圖片進行比較,以此類推。

    python判斷文件夾內的重復圖片實例

    if?__name__?==?'__main__':
    ?
    ????load_path?=?'E:\\測試圖片集(未去重)'??#?要去重的文件夾
    ????save_path?=?'E:\\測試圖片集(重復照片)'??#?空文件夾,用于存儲檢測到的重復的照片
    ????os.makedirs(save_path,?exist_ok=True)
    ?
    ????#?獲取圖片列表?file_map,字典{文件路徑filename?:?文件大小image_size}
    ????file_map?=?{}
    ????image_size?=?0
    ????#?遍歷filePath下的文件、文件夾(包括子目錄)
    ????for?parent,?dirnames,?filenames?in?os.walk(load_path):
    ????????#?for?dirname?in?dirnames:
    ????????#?print('parent?is?%s,?dirname?is?%s'?%?(parent,?dirname))
    ????????for?filename?in?filenames:
    ????????????#?print('parent?is?%s,?filename?is?%s'?%?(parent,?filename))
    ????????????#?print('the?full?name?of?the?file?is?%s'?%?os.path.join(parent,?filename))
    ????????????image_size?=?os.path.getsize(os.path.join(parent,?filename))
    ????????????file_map.setdefault(os.path.join(parent,?filename),?image_size)
    ?
    ????#?獲取的圖片列表按?文件大小image_size?排序
    ????file_map?=?sorted(file_map.items(),?key=lambda?d:?d[1],?reverse=False)
    ????file_list?=?[]
    ????for?filename,?image_size?in?file_map:
    ????????file_list.append(filename)
    ?
    ????#?取出重復的圖片
    ????file_repeat?=?[]
    ????for?currIndex,?filename?in?enumerate(file_list):
    ????????dir_image1?=?file_list[currIndex]
    ????????dir_image2?=?file_list[currIndex?+?1]
    ????????result?=?比較兩張圖片是否相同(dir_image1,?dir_image2)
    ????????if(result?==?"兩張圖相同"):
    ????????????file_repeat.append(file_list[currIndex?+?1])
    ????????????print("\n相同的圖片:",?file_list[currIndex],?file_list[currIndex?+?1])
    ????????else:
    ????????????print('\n不同的圖片:',?file_list[currIndex],?file_list[currIndex?+?1])
    ????????currIndex?+=?1
    ????????if?currIndex?>=?len(file_list)-1:
    ????????????break
    ?
    ????#?將重復的圖片移動到新的文件夾,實現對原文件夾降重
    ????for?image?in?file_repeat:
    ????????shutil.move(image,?save_path)
    ????????print("正在移除重復照片:",?image)
    人人爽人人澡人人人妻
    <label id="bh7tp"><big id="bh7tp"></big></label>

    <em id="bh7tp"><tr id="bh7tp"><u id="bh7tp"></u></tr></em>
    <th id="bh7tp"></th>

    <li id="bh7tp"><acronym id="bh7tp"></acronym></li>
  • <em id="bh7tp"></em>

    <tbody id="bh7tp"><pre id="bh7tp"></pre></tbody>