欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析Python3中遍歷目錄的三種方法

 更新時間:2023年07月18日 09:45:20   作者:Commas.KM  
在學(xué)習(xí)中,工作中,我們經(jīng)常會說遍歷一下當(dāng)前目錄咯,那么Python3中遍歷目錄的方法具體都有哪些呢并且如何操作呢,下面小編就來和大家簡單聊聊吧

一、目錄、文件夾、文件以及路徑的概念

在學(xué)習(xí)中,工作中,我們經(jīng)常會說遍歷一下當(dāng)前目錄咯。但是一旦被問到這個目錄到底是什么的時候,明明我們感覺自己知道是什么,卻又說不清楚到底是什么。沒關(guān)系,接下來我們來了解下,下次就可以說清楚啦……

中文名英文名說明
目錄directory一系列文件和文件夾的集合
文件夾folder用來存放文件和文件夾的容器
文件file用來存儲信息的單個數(shù)據(jù)單元(文本、圖像、聲音等等)
路徑path用于定位文件的路徑

從上表可以看出,目錄和文件夾意思差不多……

實際上目錄是DOS操作系統(tǒng)時期的稱呼,而Windows操作系統(tǒng)時期的稱呼為文件夾。

嚴(yán)格來說,目錄不是文件夾,因為目錄映射到存儲介質(zhì)上的物理位置,而文件夾不一定,例如桌面上的文件夾。

現(xiàn)在我們回過頭來看“遍歷一下當(dāng)前目錄”的含義,實際上就是遍歷一系列的文件與文件夾。

這些文件與文件夾和當(dāng)前路徑有著千絲萬縷的關(guān)系,因此我們會覺得當(dāng)前目錄的感覺又有點側(cè)重于路徑,不過它絕不是路徑。

二、三種遍歷目錄的方法

代碼返回說明
os.listdir(path)返回查詢路徑下的所有目錄的列表,不包括子孫目錄
os.walk(GenericPath)返回一個三元組的迭代器,其中元組(root,dirs,files)
os.scandir(GenericPath)返回以一個DirEntry(目錄條目)對象的迭代器

先看看當(dāng)前目錄結(jié)構(gòu),這次就在命令行看吧。(想快速了解命令行如何使用,請看我CSDN中的另外一篇博客《Windows中的CMD不需要死記硬背》)

首先,我們得了解怎么用tree來查看當(dāng)前目錄樹,執(zhí)行tree /?

PS D:\Mine\PythonWork\k001_dir> tree /?
以圖形顯示驅(qū)動器或路徑的文件夾結(jié)構(gòu)。       
TREE [drive:][path] [/F] [/A]
   /F   顯示每個文件夾中文件的名稱。       
   /A   使用 ASCII 字符,而不使用擴(kuò)展字符。

然后,我們使用tree /F查看當(dāng)前目錄樹結(jié)構(gòu),如下所示

PS D:\Mine\PythonWork\k001_dir> tree /F
文件夾 PATH 列表    
卷序列號為 277B-1704
D:.
│  0.txt
│  main.py

└─父目錄
    │  1.txt        
    │
    └─子目錄        
        │  21.txt   
        │  22.txt   
        │  23.txt   
        │
        └─孫目錄
                31.txt
                32.txt

話不多說,直接代碼

# coding:utf-8
import os
def traversal_dirs(path):
    # 遞歸遍歷目錄 listdir
    for dir in os.listdir(path):
        dir = os.path.join(path, dir)
        print(dir)
        if os.path.isdir(dir):
            traversal_dirs(dir)
def untraversal_walk(path):
    # 無需遞歸遍歷目錄 walk
    for root, dirs, files in os.walk("."):
        # print("【root】:", root)
        # print("【文件夾】:", dirs)
        # print("【文件】:", files)
        # print("-"*20)
        for name in files:
            print(os.path.join(root, name))
        for name in dirs:
            print(os.path.join(root, name))
def traversal_scandirs(path):
    # 遞歸遍歷目錄 candirs
    for item in os.scandir(path):
        print(item.path)
        if item.is_dir():
            traversal_scandirs(item.path)
if __name__ == "__main__":
    # NO1:只可以遍歷當(dāng)前目錄下的文件與文件夾
    print("="*20, "traversal_dirs,結(jié)果如下:")
    traversal_dirs(".")
    # NO2:遍歷選擇的目錄下所有文件夾與文件
    print("="*20, "untraversal_walk,結(jié)果如下:")
    untraversal_walk(".")
    # NO3:只可以遍歷當(dāng)前目錄下的文件與文件夾
    print("="*20, "traversal_scandirs,結(jié)果如下:")
    traversal_scandirs(".")

最后,執(zhí)行python main.py,結(jié)果輸出:

PS D:\Mine\PythonWork\k001_dir> python main.py
==================== traversal_dirs,結(jié)果如下:
.\0.txt
.\main.py
.\父目錄
.\父目錄\1.txt
.\父目錄\子目錄
.\父目錄\子目錄\21.txt
.\父目錄\子目錄\22.txt
.\父目錄\子目錄\23.txt
.\父目錄\子目錄\孫目錄
.\父目錄\子目錄\孫目錄\31.txt
.\父目錄\子目錄\孫目錄\32.txt
==================== untraversal_walk,結(jié)果如下:
.\0.txt
.\main.py
.\父目錄
.\父目錄\1.txt
.\父目錄\子目錄
.\父目錄\子目錄\21.txt
.\父目錄\子目錄\22.txt
.\父目錄\子目錄\23.txt
.\父目錄\子目錄\孫目錄
.\父目錄\子目錄\孫目錄\31.txt
.\父目錄\子目錄\孫目錄\32.txt
==================== traversal_scandirs,結(jié)果如下:
.\0.txt
.\main.py
.\父目錄
.\父目錄\1.txt
.\父目錄\子目錄
.\父目錄\子目錄\21.txt
.\父目錄\子目錄\22.txt
.\父目錄\子目錄\23.txt
.\父目錄\子目錄\孫目錄
.\父目錄\子目錄\孫目錄\31.txt
.\父目錄\子目錄\孫目錄\32.txt

到此這篇關(guān)于淺析Python3中遍歷目錄的三種方法的文章就介紹到這了,更多相關(guān)Python3遍歷目錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pycharm如何實現(xiàn)跨目錄調(diào)用文件

    pycharm如何實現(xiàn)跨目錄調(diào)用文件

    這篇文章主要介紹了pycharm如何實現(xiàn)跨目錄調(diào)用文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • pycharm 實現(xiàn)顯示project 選項卡的方法

    pycharm 實現(xiàn)顯示project 選項卡的方法

    今天小編就為大家分享一篇pycharm 實現(xiàn)顯示project 選項卡的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 只需要100行Python代碼就可以實現(xiàn)的貪吃蛇小游戲

    只需要100行Python代碼就可以實現(xiàn)的貪吃蛇小游戲

    貪吃蛇小游戲相信80、90后小時候肯定都玩過,那么你知道如果通過Python來實現(xiàn)嗎?今天就來教大家,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 詳解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和區(qū)別

    詳解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和區(qū)別

    這篇文章主要介紹了詳解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Python中的Xpath和lxml庫的使用詳解

    Python中的Xpath和lxml庫的使用詳解

    這篇文章主要介紹了Python中的Xpath和lxml庫的使用詳解,XPath即 XML路徑語言,它是一門在 XML 文檔中查找信息的語言,最初被用來搜尋 XML 文檔,同時它也適用于搜索 HTML 文檔,因此,在爬蟲過程中可以使用 XPath 來提取相應(yīng)的數(shù)據(jù),需要的朋友可以參考下
    2023-12-12
  • Python streamlit構(gòu)建令人驚嘆的可視化Web高級主題界面

    Python streamlit構(gòu)建令人驚嘆的可視化Web高級主題界面

    本文將深入探討Streamlit的方方面面,從基礎(chǔ)使用到高級主題,從數(shù)據(jù)可視化到部署與分享,更涵蓋了性能優(yōu)化、安全性考慮等最佳實踐,通過豐富的示例代碼和詳細(xì)解釋,將能夠全面了解Streamlit的強大功能,并在構(gòu)建數(shù)據(jù)驅(qū)動應(yīng)用時游刃有余
    2024-01-01
  • 淺談python寫入大量文件的問題

    淺談python寫入大量文件的問題

    今天小編就為大家分享一篇淺談python寫入大量文件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 一文詳解Python中的時間和日期處理

    一文詳解Python中的時間和日期處理

    在Python開發(fā)中,我們經(jīng)常需要處理日期和時間,Python提供了一些內(nèi)置模塊,如datetime、time和calendar,這些模塊讓我們能夠輕松地獲取、操作和格式化日期和時間,本文將介紹如何在Python中使用這些模塊進(jìn)行日期和時間的處理
    2023-06-06
  • 教大家使用Python SqlAlchemy

    教大家使用Python SqlAlchemy

    如何使用Python SqlAlchemy,本文為大家詳細(xì)介紹Python SqlAlchemy的使用方法,感興趣的朋友可以參考一下
    2016-02-02
  • Python 3.x 判斷 dict 是否包含某鍵值的實例講解

    Python 3.x 判斷 dict 是否包含某鍵值的實例講解

    今天小編就為大家分享一篇Python 3.x 判斷 dict 是否包含某鍵值的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論