python獲取某目錄下(含子目錄)所有文件名稱


目的:獲得某目錄下(含子目錄)的所有文件的名稱。os.listdir函數只能列舉當前目錄下的文件名稱。所以參考寫了一個遞歸函數如下(注意因為是遞歸函數,所以這個flist 的變量需要在定義的子函數之外。):

import os
flist = []
def getFlist(path):
    global flist
    lsdir = os.listdir(path)
    dirs = [i for i in lsdir if os.path.isdir(os.path.join(path, i))]
    if dirs:
        for i in dirs:
            getFlist(os.path.join(path, i))
    files = [i for i in lsdir if os.path.isfile(os.path.join(path, i))]
    for file in files:
        flist.append(file)
    return flist
resDir = 'res'
flist = getFlist(path)

還有另外一個更為簡單的方法,就是使用os.walk函數,代碼如下:

import os
def getFlist(path):
    for root, dirs, files in os.walk(file_dir):
        print('root_dir:', root)
        print('sub_dirs:', dirs)
        print('files:', files)
    return files
resDir = 'res'
flist = getFlist(resDir)

致謝:python遞歸列出目錄及其子目錄下所有文件
TreeSir


免責聲明!

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



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