The following returns a list of the folders named "dir_name" found under "head_dir". The folder and its subfolders are recursively searched.
- import os
-
-
def dir_list_folder(head_dir, dir_name):
-
"""Return a list of the full paths of the subdirectories
-
under directory 'head_dir' named 'dir_name'"""
-
dirList = []
-
for fn in os.listdir(head_dir):
-
dirfile = os.path.join(head_dir, fn)
-
if os.path.isdir(dirfile):
-
if fn.upper() == dir_name.upper():
-
dirList.append(dirfile)
-
else:
-
# print "Accessing directory %s" % dirfile
-
dirList += dir_list_folder(dirfile, dir_name)
-
return dirList
-
-
if __name__ == '__main__':
-
for item in dir_list_folder(r'D:\SDS2_7.1C', 'mem'):
-
print item
Example output:
>>> D:\SDS2_7.1C\jo bs\610_CC4_71\m em
D:\SDS2_7.1C\jo bs\613_Ironston e_Bank\mem
D:\SDS2_7.1C\jo bs\614_Embraer\ mem
D:\SDS2_7.1C\jo bs\615_Ironston e_OK\mem
D:\SDS2_7.1C\jo bs\616_Greenway \mem
D:\SDS2_7.1C\jo bs\617_Villa\me m
D:\SDS2_7.1C\jo bs\618_Johnston \mem
D:\SDS2_7.1C\jo bs\619_Okaloosa _Walton\mem
D:\SDS2_7.1C\jo bs\Great_Wolf\m em
>>>
The following does the same thing, but uses
os.walk():
- import os
-
-
def dir_list_folder(head_dir, dir_name):
-
outputList = []
-
for root, dirs, files in os.walk(head_dir):
-
for d in dirs:
-
if d.upper() == dir_name.upper():
-
outputList.append(os.path.join(root, d))
-
return outputList
-
-
print '\n'.join(dir_list_folder(r'D:\SDS2_7.1C\jobs', 'mem'))