设计一个函数,希望实现输入一个路径,就可以打印出该路径下的所有文件夹名称,并且返回文件夹名称组成的列表
废话不多说,代码如下:
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")