ianaré wrote: > However, i need the sorting done after the walk, due to the way the > application works... should have specified that, sorry.
If your desired output is just a sorted list of files, there is no good reason that you shouldn't be able sort in place. Unless your app is doing something extremely funky, in which case this should do it: root = self.path.GetValue() # wx.TextCtrl input filter = self.fileType.GetValue().lower() # wx.TextCtrl input not_type = self.not_type.GetValue() # wx.CheckBox input matched_paths = {} for base, dirs, walk_files in os.walk(root): main.Update() # i only need the part of the filename after the # user selected path: base = base.replace(root, '') matched_paths[base] = [] for entry in walk_files: entry = os.path.join(base, entry) if not filter: match = True else: match = filter in entry.lower() if not_type: match = not match if match: matched_paths[base].append(entry) def tolower(x): return x.lower() files = [] # Combine into flat list, first sorting on base path, then full path for base in sorted(matched_paths, key=tolower): files.extend(sorted(matched_paths[base], key=tolower)) --Ben -- http://mail.python.org/mailman/listinfo/python-list