Python遍历目标路径下的所有文件夹名称

      设计一个函数,希望实现输入一个路径,就可以打印出该路径下的所有文件夹名称,并且返回文件夹名称组成的列表

      废话不多说,代码如下:

import os

dirList = []

def findDir_BaseFunction(pathname):
    '''
简介:
    findDir_BaseFunction(pathname)可以查找pathname本身“或”其所有子路径下所有文件夹名称

参数:
    pathname:字符串形式的路径

返回值:
    dirList:pathname本身及其所有子路径下所有文件夹名称的列表
    “或”打印文件夹名称

'''
    global dirList
    # 判断pathname是否是文件夹
    if os.path.isdir(pathname):
        # 获取下一级目录或文件名
        files = os.listdir(pathname)
        #如果存在下一级目录或文件名,不存在则返回本文件夹名
        if (len(files)) > 0:
            
            # 合成一个子路径
            for i in files:
                ipath = str(pathname)+"/"+str(i)   
                # 如果子路径是文件夹,则执行下一次递归
                if os.path.isdir(ipath):
                    print(i)
                    dirList.append(i)
                    findDir_BaseFunction(ipath)
        # 递归终止条件            
        else:
            dirList.append(pathname)
            return dirList
    else:
        print("请输入正确的路径名")

        
def findDir(pathname):
    '''
findDir_BaseFunction还不够人性化,比如findDir_BaseFunction不会打印出自身路径的文件夹名称
个人水平有限 :( ,个人觉得在递归函数不能再添加新语句(担心递归时会重复执行)
所有我新建了一个findDir函数,去完善findDir_BaseFunction不会打印出自身路径的文件夹名称的问题

简介:
    findDir(pathname)可以查找pathname本身“及”其所有子路径下所有文件夹名称
    
参数:
    pathname:字符串形式的路径
    
返回值:
    dirList:pathname本身及其所有子路径下所有文件夹名称的列表
    打印文件夹名称
'''   
    if os.path.isdir(pathname):
        print(pathname)
    files = os.listdir(pathname)
    if (len(files)) > 0:
        dirList.append(pathname)
    findDir_BaseFunction(pathname)
      
findDir("F:/god_App")

发布了13 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ZHONGZEWEI/article/details/79746784
今日推荐