#Recoursively Move all files up to root level. import os, shutil print os.getcwd() root = os.getcwd() endstring = 'C:\Users\shawn\Desktop\DATA\Programming\Python' scriptname = 'recourse.py' numofdirs = 0 numofiles = 0 def deletedirs(): global numofdirs print 'entering deletedirs | current dir: ' + str(os.getcwd()) y = 0 for x in os.listdir(os.getcwd()): if os.path.isdir(x): os.chdir(x) deletedirs() os.chdir('..') try: os.rmdir(x) print 'Removed Directory: ' + x numofdirs -= 1 y += 1 except: print "Couldn't Delete Directory: " + x print "Num of Directory's Removed: " + str(y) print "Number of Directories: " + str(numofdirs) def recourseprint(): global numofdirs, numofiles for x in os.listdir(os.getcwd()): if os.path.isdir(x): print 'Dir : ' + x numofdirs += 1 else: print 'File:' + x numofiles += 1 #print x + "\t | dir: " + str(os.path.isdir(x)) if os.path.isdir(x): os.chdir(x) recourseprint() os.chdir('..') #print os.getcwd() print '-' * 40 print "Number of Directories: " + str(numofdirs) print "Number of Files: " + str(numofiles) print '-' * 40 def recoursemove(): for x in os.listdir(os.getcwd()): if os.getcwd() == root: print "Back To root" if x == scriptname: print 'at recourse.py' if os.path.isdir(x): os.chdir(x) recoursemove() os.chdir('..') if os.path.isfile(x) and os.getcwd() != root: shutil.move(x, '..') recourseprint() while(numofdirs != 0): recoursemove() deletedirs()