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

Python實現(xiàn)輕松比較兩個文件夾的多種方法

 更新時間:2025年09月24日 09:42:48   作者:Jack電子實驗室  
在處理數(shù)據(jù)集時,我們經(jīng)常會遇到兩個文件夾中文件數(shù)目不一致的情況,本文我們就來使用Python比較一下兩個文件夾,輕松實現(xiàn)找出多出的文件,有需要的可以了解下

在處理數(shù)據(jù)集時,我們經(jīng)常會遇到兩個文件夾中文件數(shù)目不一致的情況。這可能是由于某些文件被遺漏或者錯誤地刪除導致的。為了快速找出哪些文件是多出來的,我們可以使用Python中的集合操作來實現(xiàn)。

首先,我們定義一個函數(shù) get_files_in_directory(directory) 來獲取指定目錄中的所有文件名,并將其轉(zhuǎn)換為一個集合:

import os

def get_files_in_directory(directory):
    """獲取指定目錄中的所有文件名"""
    return set(os.listdir(directory))

接下來,我們定義另一個函數(shù) find_extra_files(dir1, dir2) 來比較兩個文件夾中的文件差異:

def find_extra_files(dir1, dir2):
    """找出在 dir1 中但不在 dir2 中的文件"""
    files_dir1 = get_files_in_directory(dir1)
    files_dir2 = get_files_in_directory(dir2)

    extra_in_dir1 = files_dir1 - files_dir2
    extra_in_dir2 = files_dir2 - files_dir1

    return extra_in_dir1, extra_in_dir2

在這個函數(shù)中,我們首先使用 get_files_in_directory() 函數(shù)獲取兩個文件夾中的所有文件名,并將其轉(zhuǎn)換為集合。然后,我們使用集合的差集操作 files_dir1 - files_dir2files_dir2 - files_dir1 來分別找出在 dir1 中多出的文件和在 dir2 中多出的文件。

最后,我們可以使用這個函數(shù)來比較兩個文件夾,并輸出結(jié)果:

# 示例用法
dir1 = r'F:\datesate\datasetnii\date-png\tumor_image'  
dir2 = r'F:\datesate\datasetnii\date-png\tumor_lable'  

extra_in_dir1, extra_in_dir2 = find_extra_files(dir1, dir2)

print(f"在 {dir1} 中多出的文件: {extra_in_dir1}")
print(f"在 {dir2} 中多出的文件: {extra_in_dir2}")

這樣,我們就可以快速地找出兩個文件夾中多出的文件,并進行相應的處理。

全部代碼:

import os

def get_files_in_directory(directory):
    """獲取指定目錄中的所有文件名"""
    return set(os.listdir(directory))

def find_extra_files(dir1, dir2):
    """找出在 dir1 中但不在 dir2 中的文件"""
    files_dir1 = get_files_in_directory(dir1)
    files_dir2 = get_files_in_directory(dir2)

    extra_in_dir1 = files_dir1 - files_dir2
    extra_in_dir2 = files_dir2 - files_dir1

    return extra_in_dir1, extra_in_dir2

# 示例用法
dir1 = r'F:\datesate\datasetnii\date-png\tumor_image'  # 替換為第一個文件夾的路徑
dir2 = r'F:\datesate\datasetnii\date-png\tumor_lable'  # 替換為第二個文件夾的路徑

extra_in_dir1, extra_in_dir2 = find_extra_files(dir1, dir2)

print(f"在 {dir1} 中多出的文件: {extra_in_dir1}")
print(f"在 {dir2} 中多出的文件: {extra_in_dir2}")

方法補充

python比較兩個文件是否一致

1.逐行比較

逐行比較是最簡單的文件比較方法,適用于小文件??梢酝ㄟ^逐行讀取兩個文件的內(nèi)容,并逐行進行比較。以下是一個簡單的示例代碼:

def compare_files_line_by_line(file1, file2):
    with open(file1, 'r') as f1, open(file2, 'r') as f2:
        for line1, line2 in zip(f1, f2):
            if line1 != line2:
                return False
            return True

這種方法的優(yōu)點是直觀、易于理解,但缺點是對于大文件效率較低。

2.文件內(nèi)容哈希

文件內(nèi)容哈希是一種更高效的比較方法,特別適用于大文件。通過計算文件內(nèi)容的哈希值,可以快速判斷兩個文件是否一致。以下是一個示例代碼:

import hashlib
def get_file_hash(file_path):
    hash_md5 = hashlib.md5()
    with open(file_path, 'rb') as f:
        for chunk in iter(lambda: f.read(4096), b""):
            hash_md5.update(chunk)
    return hash_md5.hexdigest()
def compare_files_by_hash(file1, file2):
    return get_file_hash(file1) == get_file_hash(file2)

3.文件大小比較

文件大小比較是一種簡單而快速的比較方法。對于某些情況下,如果兩個文件的大小不同,那么它們的內(nèi)容肯定不一致。以下是一個示例代碼:

import os
def compare_files_by_size(file1, file2):
    return os.path.getsize(file1) == os.path.getsize(file2)

4.使用第三方庫

使用filecmp庫

filecmp庫是Python標準庫中的一個模塊,可以方便地比較文件和目錄。以下是一個示例代碼:

import filecmp
def compare_files_with_filecmp(file1, file2):
???????return filecmp.cmp(file1, file2, shallow=False)

這種方法的優(yōu)點是使用方便,缺點是需要依賴第三方庫。

使用difflib庫

difflib庫也是Python標準庫中的一個模塊,可以用于比較文件內(nèi)容,并生成差異報告。以下是一個示例代碼:

import difflib

def compare_files_with_difflib(file1, file2):
    with open(file1, 'r') as f1, open(file2, 'r') as f2:
        diff = difflib.unified_diff(f1.readlines(), f2.readlines())
        
        return list(diff)

這種方法的優(yōu)點是可以生成詳細的差異報告,缺點是需要依賴第三方庫,并且對于大文件效率較低。

到此這篇關(guān)于Python實現(xiàn)輕松比較兩個文件夾的多種方法的文章就介紹到這了,更多相關(guān)Python比較文件夾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 2018年P(guān)ython值得關(guān)注的開源庫、工具和開發(fā)者(總結(jié)篇)

    2018年P(guān)ython值得關(guān)注的開源庫、工具和開發(fā)者(總結(jié)篇)

    本文給大家總結(jié)了2018年P(guān)ython值得關(guān)注的開源庫、工具和開發(fā)者,需要的朋友可以參考下
    2018-01-01
  • pytorch如何自定義數(shù)據(jù)集

    pytorch如何自定義數(shù)據(jù)集

    這篇文章主要介紹了pytorch自定義數(shù)據(jù)集,在識別手寫數(shù)字的例子中,數(shù)據(jù)集是直接下載的,但如果我們自己收集了一些數(shù)據(jù),存在電腦文件夾里,我們該如何把這些數(shù)據(jù)變?yōu)榭梢栽赑yTorch框架下進行神經(jīng)網(wǎng)絡(luò)訓練的數(shù)據(jù)集呢,即如何自定義數(shù)據(jù)集呢,需要的朋友可以參考下
    2024-01-01
  • Python中切片操作符的具體使用

    Python中切片操作符的具體使用

    Python切片操作用于提取序列(如列表、字符串)的子集,支持正負索引和步長,返回淺拷貝新對象,切片操作通常用于列表、元組、字符串等,下面就具體來了解一下
    2025-07-07
  • 用python處理圖片之打開\顯示\保存圖像的方法

    用python處理圖片之打開\顯示\保存圖像的方法

    本篇文章主要介紹了用python處理圖片之打開\顯示\保存圖像的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • python中幾個常用函數(shù)的正確用法-lambda/filter/map/reduce

    python中幾個常用函數(shù)的正確用法-lambda/filter/map/reduce

    這篇文章主要介紹了python中幾個常用函數(shù)的正確用法,這幾個常用函數(shù)包括lambda、filter、map、reduce,本文將圍繞這幾個常用函數(shù)展開內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • Python制作腳本幫女朋友搶購清空購物車

    Python制作腳本幫女朋友搶購清空購物車

    這篇文章主要介紹了Python制作的搶購清空購物車的腳本,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • matplotlib命令與格式之tick坐標軸日期格式(設(shè)置日期主副刻度)

    matplotlib命令與格式之tick坐標軸日期格式(設(shè)置日期主副刻度)

    這篇文章主要介紹了matplotlib命令與格式之tick坐標軸日期格式(設(shè)置日期主副刻度),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python 語法錯誤:"SyntaxError: invalid character in identifier"原因及解決方法

    Python 語法錯誤:"SyntaxError: invalid charac

    本文給大家分享Python 語法錯誤:“SyntaxError: invalid character in identifier“,原因及解決方法,文末給大家補充介紹了Python出現(xiàn)SyntaxError: invalid syntax的原因總結(jié),感興趣的朋友跟隨小編一起學習吧
    2023-02-02
  • python 變量初始化空列表的例子

    python 變量初始化空列表的例子

    今天小編就為大家分享一篇python 變量初始化空列表的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 基于Python_腳本CGI、特點、應用、開發(fā)環(huán)境(詳解)

    基于Python_腳本CGI、特點、應用、開發(fā)環(huán)境(詳解)

    下面小編就為大家?guī)硪黄赑ython_腳本CGI、特點、應用、開發(fā)環(huán)境(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論

元氏县| 章丘市| 涿州市| 正定县| 桃江县| 中西区| 浦城县| 崇信县| 荔浦县| 临洮县| 随州市| 琼结县| 虎林市| 安阳县| 金川县| 左贡县| 连南| 修武县| 峨眉山市| 乐陵市| 金阳县| 蓝田县| 静海县| 客服| 石家庄市| 开化县| 昌乐县| 荣成市| 都昌县| 隆安县| 贡山| 香河县| 玛曲县| 泾阳县| 肇庆市| 濮阳市| 永康市| 靖远县| 山东| 甘泉县| 信阳市|