3 ms·
Here's a recursive directory traversal in Python: import os import os.path def list_files_recursive(path): filenames = os.listdir(path) fo
by clusmore 10y ago
Here's a recursive directory traversal in Python:
import os
import os.path
def list_files_recursive(path):
filenames = os.listdir(path)
for filename in filenames:
fullname = os.path.join(path, filename)
if os.path.isdir(fullname):
yield from list_files_recursive(fullname) # recursively explore folders
else:
yield fullname
and here is the same program with an explicit stack
import os
import os.path
def list_files_stack(path):
folders = [path] # create stack of unexplored folders
while folders: # repeat until stack is empty
path = folders.pop() # pick a folder from stack
filenames = os.listdir(path)
for filename in filenames:
fullname = os.path.join(path, filename)
if os.path.isdir(fullname):
folders.append(fullname) # push folder to stack
else:
yield fullname
- auxym 10y agoWow, somehow I expected something complex. Thanks a lot!