Python os.path.walk:遍歷目錄並執行指定操作

一、os.path.walk函數簡介

Python的os.path模塊提供了os.path.walk函數,該函數可以在指定目錄及其子目錄中遍歷所有文件並執行指定操作。os.path.walk()需要3個參數,分別是起始目錄、一個迭代函數、一個傳遞給迭代函數的參數。其基本語法如下:

import os

def process(path, dir, files):
    pass

os.path.walk('path/to/folder', process, None)

其中process為自定義迭代函數,os.path.walk()會自動遞歸遍歷起始目錄(包括其子目錄)中所有文件,並將它們的路徑傳遞給process函數。process函數中的參數path表示當前遍歷的文件路徑,dir表示當前遍歷的目錄名,files是一個數組,包含當前目錄下的所有文件。

二、os.path.walk的實際應用

os.path.walk()的使用非常靈活,可以根據具體需求編寫不同的迭代函數。下面,我們將介紹幾種常見的實際應用場景。

三、查詢特定目錄下的所有文件

假設我們需要查詢特定目錄下的所有文件,我們可以編寫如下的迭代函數:

import os

def list_files(path, dir, files):
    for file in files:
        # 使用os.path.join()函數將路徑拼接起來
        print(os.path.join(path, file))
        
os.path.walk('path/to/folder', list_files, None)

執行上面的代碼,可以列出特定目錄下的所有文件路徑。

四、計算特定目錄下所有文件的大小

假設我們需要計算特定目錄下的所有文件的大小,我們可以編寫如下的迭代函數:

import os

total_size = 0

def compute_size(path, dir, files):
    global total_size
    for file in files:
        # 使用os.path.join()函數將路徑拼接起來
        file_path = os.path.join(path, file)
        # 判斷文件是否存在,並且不是目錄
        if os.path.isfile(file_path):
            # 獲取文件大小
            file_size = os.path.getsize(file_path)
            total_size += file_size

os.path.walk('path/to/folder', compute_size, None)
print('Total size:', total_size)

執行上面的代碼,可以計算出特定目錄下的所有文件大小總和。

五、刪除特定目錄下所有滿足條件的文件

假設我們需要刪除特定目錄下所有滿足條件的文件,我們可以編寫如下的迭代函數:

import os

def delete_files(path, dir, files):
    for file in files:
        # 使用os.path.join()函數將路徑拼接起來
        file_path = os.path.join(path, file)
        # 判斷文件是否存在
        if os.path.exists(file_path):
            # 判斷文件是否滿足刪除條件,這裡的條件是:文件名以.txt結尾
            if file_path.endswith('.txt'):
                os.remove(file_path)

os.path.walk('path/to/folder', delete_files, None)

執行上面的代碼,可以刪除特定目錄下所有滿足條件的文件。

原創文章,作者:EYWX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147812.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EYWX的頭像EYWX
上一篇 2024-11-02 13:12
下一篇 2024-11-02 13:12

相關推薦

  • Rclone複製所有目錄

    如果你需要將本地文件複製到雲端,或者從雲端複製文件到本地,Rclone是一個非常好的選擇。本文將介紹如何使用Rclone複製所有目錄。 一、安裝Rclone 首先,你需要在你的機器…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python遍歷集合中的元素

    本文將從多個方面詳細闡述Python遍歷集合中的元素方法。 一、for循環遍歷集合 Python中,使用for循環可以遍歷集合中的每個元素,代碼如下: my_set = {1, 2…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python如何遍歷字典中的key和value

    本文將詳細講解Python中如何遍歷字典中的key和value,包括多種遍歷方式以及在遍歷過程中的一些應用場景。 一、遍歷字典中的key和value 在Python中,字典是一種無…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python磁碟操作全方位解析

    本篇文章將從多個方面對Python磁碟操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件許可權修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • 二級考級舞蹈大全目錄

    本文將從以下多個方面對二級考級舞蹈大全目錄進行詳細闡述。 一、目錄結構 二級考級舞蹈大全目錄主要分為三級,即一級目錄、二級目錄和三級目錄。其中,一級目錄為舞蹈類型,二級目錄為舞蹈名…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29

發表回復

登錄後才能評論