import os
def func(filepath, n):
# 获取路径
files = os.listdir(filepath)
for file in files:
# 拼接路径
f_d = os.path.join(filepath, file)
# 判断路径是否属于同一目录
if os.path.isdir(f_d):
print("\t"*n, file)
func(f_d, n+1)
else:
print("\t"*n, file)
func("D:/Admin/PyCharm/PycharmProjects/pythonProject1", 0)
1.导入 os 模块:import os
2.定义了一个递归函数 func(),接收两个参数 filepath 和 n,分别表示当前遍历的路径和层级。
3.使用 os.listdir(filepath) 获取指定路径下的所有文件和文件夹列表,保存在变量 files 中。
4.对于 files 列表中的每个元素,执行以下操作:
使用 os.path.join(filepath, file) 将路径 filepath 和当前元素 file 拼接起来,得到完整的路径 f_d。
使用 os.path.isdir(f_d) 判断路径 f_d 是否是一个目录。
如果 f_d 是一个目录,则输出当前层级的制表符(\t)乘以层级数 n,再输出当前目录的名称 file。
然后递归调用 func() 函数,传入新的路径 f_d 和层级数 n+1,继续遍历该目录下的内容。
如果 f_d 不是一个目录,则输出当前层级的制表符乘以层级数 n,再输出当前文件的名称 file。
最后,调用 func() 函数,传入初始路径和层级数,进行遍历输出。
例如,假设指定的路径为 "D:/Admin/PyCharm/PycharmProjects/pythonProject1",代码会从该路径开始递归遍历,并输出每个文件和目录的层级结构。
(代码中的制表符 ("\t") 是为了在输出结果中形成层级关系,每增加一层就多添加一个制表符。)