用os.walk可以遍历多层目录,但是有时需要只遍历指定层数目录。
比如,要获取某个目录的1级和2级子目录。可以用下面的方法。
# -*- coding: UTF-8 -*-
# Python 3.6
import os
def get_sub_dirs(root_path):
root_depth = len(root_path.split(os.path.sep))
c = [] # 存放第1级子目录
d = [] # 存放第2级子目录
for root, dirs, files in os.walk(root_path, topdown=True):
for name in dirs:
dir_path = os.path.join(root, name)
dir_depth = len(dir_path.split(os.path.sep))
if dir_depth == root_depth + 1:
c.append(dir_path)
elif dir_depth == root_depth + 2:
d.append(dir_path)
else:
break
return c, d