def walktree(self,top=".", depthfirst=False): """ Walk a directory tree, starting from 'top'
This code is based on os.path.walk, with the callback function replaced by a yield and recursion replaced by iteration """ if type(top) != types.StringType: raise TypeError("top must be a string") # decide which end of the stack to pop if depthfirst: index = -1 else: index = 0 dirstack = [top] while dirstack: top = dirstack.pop(index) try: names = os.listdir(top) except os.error: return yield top, names dirs = [] for name in names: name = os.path.join(top, name) try: st = os.lstat(name) except os.error: continue if stat.S_ISDIR(st.st_mode): dirs.append(name) # the depth-first results look 'backwards' to me # so I'm changing them to fit my expectations if depthfirst: dirs.reverse() dirstack.extend(dirs) this function might be useful Sean McIlroy wrote: > And now for a pair of questions that are completely different: > > 1) I'd like to be able to bind callbacks to presses of the arrow > buttons on the keyboard. How do you say that in Tkinter? > > 2) The function 'listdir' in os.path returns a list of all the files > in the given directory - how do I get hold of a list of its > subdirectories? > > Any help will be greatly appreciated. > > Peace, > STM -- http://mail.python.org/mailman/listinfo/python-list