python中掃描某個指定目錄下所包含的子目錄和文件的兩種方法


Python os.walk() 方法

概述:
os.walk() 方法用於通過在目錄樹中游走輸出在目錄中的文件名,向上或者向下。
os.walk() 方法是一個簡單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情。
在Unix,Windows中有效。

語法:
walk()方法語法格式如下:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

參數:
1.top -- 是你所要遍歷的目錄的地址, 返回的是一個三元組(root,dirs,files)。
root 所指的是當前正在遍歷的這個文件夾的本身的地址
dirs 是一個 list ,內容是該文件夾中所有的目錄的名字(不包括子目錄)
files 同樣是 list , 內容是該文件夾中所有的文件(不包括子目錄)
2.topdown --可選,為 True,則優先遍歷 top 目錄,否則優先遍歷 top 的子目錄(默認為開啟)。如果 topdown 參數為 True,walk 會遍歷top文件夾,與top 文件夾中每一個子目錄。
3.onerror -- 可選,需要一個 callable 對象,當 walk 需要異常時,會調用。
4.followlinks -- 可選,如果為 True,則會遍歷目錄下的快捷方式(linux 下是軟連接 symbolic link )實際所指的目錄(默認關閉),如果為 False,則優先遍歷 top 的子目錄。

返回值:
返回生成器。

例子--遍歷文件夾:

import os
def walkFile(file):
    for root, dirs, files in os.walk(file):

        # root 表示當前正在訪問的文件夾路徑
        # dirs 表示該文件夾下的子目錄名list
        # files 表示該文件夾下的文件list

        # 遍歷文件
        for f in files:
            print(os.path.join(root, f))

        # 遍歷所有的文件夾
        for d in dirs:
            print(os.path.join(root, d))

 

 

Python os.listdir() 方法

概述:
os.listdir() 方法用於返回指定的文件夾包含的文件或文件夾的名字的列表。
它不包括 . 和 .. 即使它在文件夾中。
只支持在 Unix, Windows 下使用。

語法:
listdir()方法語法格式如下:

os.listdir(path)

參數:
path -- 需要列出的目錄路徑

返回值:
返回指定路徑下的文件和文件夾列表。

實例:
以下實例演示了 listdir() 方法的使用:

import os, sys

# 打開文件
path = "/var/www/html/"
dirs = os.listdir( path )

# 輸出所有文件和文件夾
for file in dirs:
   print file

執行以上程序輸出結果為:

test.htm
stamp
faq.htm
_vti_txt
robots.txt
itemlisting
resumelisting
writing_effective_resume.htm
advertisebusiness.htm
papers
resume

如果目錄下有中文目錄,打印時遇到亂碼解決方法:

cPath = os.getcwd()

# 如果目錄名字為中文 需要轉碼處理
uPath = unicode(cPath,'utf-8')
for fileName in os.listdir(uPath) :
    print fileName

 

 

 

參考原文: 菜鳥教程

https://www.runoob.com/python/os-walk.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM