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

Python中os.walk用法使用小結(jié)

 更新時(shí)間:2025年12月15日 09:59:30   作者:RedmiUltra  
os.walk()是Python中用于遍歷目錄樹(shù)的強(qiáng)大函數(shù),本文就來(lái)詳細(xì)的介紹一下os.walk用法小結(jié),感興趣的可以了解一下

os.walk() 是 Python 中用于遍歷目錄樹(shù)的強(qiáng)大函數(shù)。讓我詳細(xì)解釋每個(gè)變量返回的信息和用法:

基本概念

  • root: 當(dāng)前正在訪問(wèn)的目錄路徑
  • dirs: 當(dāng)前目錄下的子目錄列表
  • files: 當(dāng)前目錄下的文件列表

示例目錄結(jié)構(gòu)

project/
├── log_2024_01.txt
├── config.ini
├── logs/
│   ├── system.log
│   ├── app.log
│   └── archive/
│       └── old_log.txt
└── data/
    ├── input.csv
    └── output.csv

具體例子

import os

# 假設(shè)當(dāng)前目錄結(jié)構(gòu)如上所示
log_dir_path = "./project"

for root, dirs, files in os.walk(log_dir_path):
    print(f"當(dāng)前目錄: {root}")
    print(f"子目錄列表: {dirs}")
    print(f"文件列表: {files}")
    print("-" * 50)

第一次迭代

當(dāng)前目錄: ./project
子目錄列表: ['logs', 'data']  # 當(dāng)前目錄下的子文件夾
文件列表: ['log_2024_01.txt', 'config.ini']  # 當(dāng)前目錄下的文件

第二次迭代

當(dāng)前目錄: ./project/logs
子目錄列表: ['archive']  # logs文件夾下的子目錄
文件列表: ['system.log', 'app.log']  # logs文件夾下的文件

第三次迭代

當(dāng)前目錄: ./project/logs/archive
子目錄列表: []  # 沒(méi)有子目錄
文件列表: ['old_log.txt']  # archive文件夾下的文件

第四次迭代

當(dāng)前目錄: ./project/data
子目錄列表: []  # 沒(méi)有子目錄
文件列表: ['input.csv', 'output.csv']  # data文件夾下的文件

實(shí)際應(yīng)用示例

1. 查找特定文件

import os

for root, dirs, files in os.walk("."):
    for file in files:
        if file.endswith(".log"):
            full_path = os.path.join(root, file)
            print(f"找到日志文件: {full_path}")

2. 計(jì)算目錄大小

import os

total_size = 0
for root, dirs, files in os.walk("."):
    for file in files:
        file_path = os.path.join(root, file)
        total_size += os.path.getsize(file_path)

print(f"總大小: {total_size} 字節(jié)")

3. 遍歷時(shí)排除特定目錄

import os

exclude_dirs = ['.git', '__pycache__', 'node_modules']

for root, dirs, files in os.walk("."):
    # 從 dirs 列表中移除要排除的目錄
    dirs[:] = [d for d in dirs if d not in exclude_dirs]
    
    for file in files:
        print(os.path.join(root, file))

4. 獲取所有文件的完整路徑

import os

all_files = []
for root, dirs, files in os.walk("/path/to/directory"):
    for file in files:
        full_path = os.path.join(root, file)
        all_files.append(full_path)

print(f"找到 {len(all_files)} 個(gè)文件")

重要特性

默認(rèn)是深度優(yōu)先遍歷(從上到下)

可以控制遍歷方向

# 自頂向下遍歷(默認(rèn))
for root, dirs, files in os.walk(".", topdown=True):
    pass

# 自底向上遍歷
for root, dirs, files in os.walk(".", topdown=False):
    pass

修改 dirs 會(huì)影響遍歷

for root, dirs, files in os.walk("."):
    # 不遍歷隱藏目錄
    dirs[:] = [d for d in dirs if not d.startswith('.')]

實(shí)際使用技巧

import os

class LogProcessor:
    def __init__(self, log_dir_path):
        self.log_dir_path = log_dir_path
    
    def process_logs(self):
        for root, dirs, files in os.walk(self.log_dir_path):
            # 按日期處理日志
            for file in files:
                if file.endswith('.log'):
                    self._process_single_log(root, file)
    
    def _process_single_log(self, directory, filename):
        filepath = os.path.join(directory, filename)
        # 處理日志文件的邏輯
        print(f"處理: {filepath}")

# 使用示例
processor = LogProcessor("./logs")
processor.process_logs()

os.walk() 是一個(gè)非常實(shí)用的函數(shù),特別適合需要遞歸處理文件系統(tǒng)的場(chǎng)景,比如日志分析、文件備份、批量重命名等任務(wù)。

到此這篇關(guān)于Python中os.walk用法使用小結(jié)的文章就介紹到這了,更多相關(guān)Python os.walk用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PowerShell的基本使用方法

    PowerShell的基本使用方法

    本文主要介紹了PowerShell的基本使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Python實(shí)現(xiàn)繪圖散點(diǎn)圖(scatter)

    Python實(shí)現(xiàn)繪圖散點(diǎn)圖(scatter)

    這篇文章主要介紹了Python實(shí)現(xiàn)繪圖散點(diǎn)圖方式(scatter),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Anaconda3 安裝與入門(mén)使用詳細(xì)步驟

    Anaconda3 安裝與入門(mén)使用詳細(xì)步驟

    Anaconda3 是數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域的強(qiáng)大工具,它集成了 Python 和大量常用庫(kù),并通過(guò) Conda 工具高效管理虛擬環(huán)境和包依賴(lài) ,本文介紹Anaconda3 安裝與入門(mén)使用詳細(xì)步驟,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • 如何使用uv構(gòu)建Python包并本地安裝步驟詳解

    如何使用uv構(gòu)建Python包并本地安裝步驟詳解

    uv是一個(gè)由Astral開(kāi)發(fā)的超快Python包安裝工具和解析器,使用Rust編寫(xiě),旨在替代pip、pip-tools和virtualenv,提供更快的性能和更好的依賴(lài)管理,這篇文章主要介紹了如何使用uv構(gòu)建Python包并本地安裝的相關(guān)資料,需要的朋友可以參考下
    2025-06-06
  • 詳解Python?Requests庫(kù)中的重試策略

    詳解Python?Requests庫(kù)中的重試策略

    在Python中,requests庫(kù)是處理HTTP請(qǐng)求的標(biāo)準(zhǔn)工具之一,這篇文章主要為大家介紹了如何在requests中實(shí)現(xiàn)請(qǐng)求的自動(dòng)重試,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Python實(shí)現(xiàn)快速傅里葉變換的方法(FFT)

    Python實(shí)現(xiàn)快速傅里葉變換的方法(FFT)

    這篇文章主要介紹了Python實(shí)現(xiàn)快速傅里葉變換的方法(FFT),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 在Python的Django框架上部署ORM庫(kù)的教程

    在Python的Django框架上部署ORM庫(kù)的教程

    這篇文章主要介紹了在Python的Django框架上部署ORM庫(kù)的教程,文中還給出了幾個(gè)ORM庫(kù)之間的對(duì)比,需要的朋友可以參考下
    2015-04-04
  • Python解析最簡(jiǎn)單的驗(yàn)證碼

    Python解析最簡(jiǎn)單的驗(yàn)證碼

    最近在學(xué)python,正好遇到學(xué)校需要選宿舍,就用python寫(xiě)了一個(gè)搶宿舍的軟件。下面通過(guò)本文給大家介紹python解析最簡(jiǎn)單的驗(yàn)證碼,對(duì)python解析驗(yàn)證碼相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • Python反射機(jī)制案例超詳細(xì)講解

    Python反射機(jī)制案例超詳細(xì)講解

    反射就是通過(guò)字符串的形式,導(dǎo)入模塊;通過(guò)字符串的形式,去模塊尋找指定函數(shù),并執(zhí)行。利用字符串的形式去對(duì)象(模塊)中操作(查找/獲取/刪除/添加)成員,一種基于字符串的事件驅(qū)動(dòng)
    2022-09-09
  • Python常用數(shù)據(jù)庫(kù)接口sqlite3和MySQLdb學(xué)習(xí)指南

    Python常用數(shù)據(jù)庫(kù)接口sqlite3和MySQLdb學(xué)習(xí)指南

    在本章節(jié)中,我們將學(xué)習(xí) Python 中常用的數(shù)據(jù)庫(kù)接口,包括 sqlite3用于SQLite數(shù)據(jù)庫(kù)和MySQLdb用于 MySQL 數(shù)據(jù)庫(kù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評(píng)論

桦川县| 寿宁县| 策勒县| 南郑县| 邮箱| 平顶山市| 新竹市| 阳泉市| 奉贤区| 花垣县| 博罗县| 珠海市| 陈巴尔虎旗| 德庆县| 永登县| 华阴市| 达州市| 武安市| 西青区| 乐清市| 高邑县| 兴仁县| 卫辉市| 芜湖县| 十堰市| 北宁市| 额敏县| 阿尔山市| 桂东县| 姜堰市| 甘谷县| 大连市| 锦屏县| 康定县| 延长县| 南开区| 漳平市| 穆棱市| 延津县| 神农架林区| 玉树县|