Skip to content

Instantly share code, notes, and snippets.

@brydavis
Created August 27, 2019 17:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brydavis/22a913738e4317c74eae285abb4536d3 to your computer and use it in GitHub Desktop.
Save brydavis/22a913738e4317c74eae285abb4536d3 to your computer and use it in GitHub Desktop.
Finding files within subfolders without using `os.walk` or `glob` libraries
import os
from pprint import pprint
data = {}
def find_files(folder, file_extension):
for item in os.listdir(folder):
item = "/".join([folder, item])
if os.path.isdir(item):
data[item] = []
find_files(item, file_extension) # RECURSION TIME
if len(data[item]) == 0:
del data[item]
else:
if item[-1*len(file_extension):] == file_extension:
# print(item)
basename = os.path.basename(item)
dirname = os.path.dirname(item).strip("/")
data[dirname].append(basename)
find_files(".", ".png")
pprint(data)
@brydavis
Copy link
Author

For Python class, here's what final structure should look like.

{
    './data/furniture/chair': ['metal_chair_back_isometric_400_clr_17527.png'],
    './data/furniture/chair/couch': ['sofa_400_clr_10056.png'],
    './data/furniture/table': ['table_with_cloth_400_clr_10664.png',
        'basic_desk_main_400_clr_17523.png',
        'desk_isometric_back_400_clr_17524.png'
    ],
    './data/new': ['chairs_balancing_stacked_400_clr_11525.png',
        'hotel_room_400_clr_12721.png'
    ],
    './data/old': ['sitting_in_chair_relaxing_400_clr_6028.png',
        'couple_on_swing_bench_400_clr_12844.png'
    ]
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment