This code does a recursive listing of files and folders from a specified path. Though there are built in functions like glob() which can do this in one line, this is more to demonstrate recursion and also more control over the iteration.
If no path is specified in the command line then it starts from the current working directory.
eg.python listdir.py “/var/myfolder”
import os import sys #the main function to display and recurse def walkdir(xpath): global depth for files in os.listdir(xpath): if os.path.isfile(xpath + '/' + files): print spaces(depth) + files else: print spaces(depth) + "/" + files if os.path.isdir(xpath + '/' + files): depth += 1 walkdir(xpath + '/' + files) depth -= 1 #display spaces to provide indentation to the output def spaces(num): retval = '' for i in range (1,num): retval += ' ' return retval path = '' depth = 0 if (sys.argv[1:] == []): path = os.getcwd() else: path = sys.argv[1] print path walkdir(path)
Leave a Reply