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\jobs\610_CC4_71\mem
D:\SDS2_7.1C\jobs\613_Ironstone_Bank\mem
D:\SDS2_7.1C\jobs\614_Embraer\mem
D:\SDS2_7.1C\jobs\615_Ironstone_OK\mem
D:\SDS2_7.1C\jobs\616_Greenway\mem
D:\SDS2_7.1C\jobs\617_Villa\mem
D:\SDS2_7.1C\jobs\618_Johnston\mem
D:\SDS2_7.1C\jobs\619_Okaloosa_Walton\mem
D:\SDS2_7.1C\jobs\Great_Wolf\mem
>>>
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'))