To emulate the order of XP, you might be able to get away with something like:-
sorted( myData, key=lambda L: L.replace('~',chr(0)) ) That just forces all '~'s to be before everything else. hth, Jon. On 15 Aug, 14:33, Jeremy C B Nicoll <[EMAIL PROTECTED]> wrote: > Marc 'BlackJack' Rintsch <[EMAIL PROTECTED]> wrote: > > > > > > > On Wed, 15 Aug 2007 12:34:27 +0100, Jeremy C B Nicoll wrote: > > > > I've some supplementary questions... my original code was looking at > > > each leafname in turn via > > > > for leaf in os.listdir(path): > > > wholefile = os.path.join(path,leaf) > > > if os.path.isfile(wholefile): > > > if leaf.startswith("~"): > > > > etc. But I now realise I might alternatively do something like: > > > > leaflist = os.listdir(path) > > > <then something to sort that list> > > > for leaf in leaflist: > > > But this is doing something different that the above code!? > > I'm not sure if I understand you. I know it's only "equivalent" to the > first line of what's above, ie iterate over a list of names, and obviously > it's got the sorting of that list done, but do you mean there's some other > difference? > > > > How would I sort leaflist in a way that mimics the sort order that XP > > > shows me things under? > > > This depends on what XP is. Which program? Which locale? How does the > > locale influence that programs sorting? > > Well... XP is Windows XP (Pro as I think I said earlier), and I'm in the UK. > I explained earlier how XP shows me stuff in order when I tell it to sort by > name. > > > > > > > > > > Secondly, my code is wasting time looking at subdirectories/files which > > > I already know I'm not interested in. Is there a way to restrict > > > listdir to, say, only return info about subdirectories, or only about > > > dirs/files whose names match a pattern? > > > `os.listdir()` always returns all names. You can or have to filter the > > result if you are only interested in some of the names. Simple pattern > > matching on names can be done with `glob.glob()`. > > > > Thirdly, once I've go a list of leafnames, somehow, is there a way to > > > ask Python if a specific leaf-value is in that list, without explicitly > > > looping through the items in the list? > > > With the ``in`` operator you have an implicit loop over the list. > > > if 'readme.txt' in leafnames: > > print 'Hurray!' > > OK, that looks useful. Thanks. > > -- > Jeremy C B Nicoll - my opinions are my own.- Hide quoted text - > > - Show quoted text -- Hide quoted text - > > - Show quoted text - -- http://mail.python.org/mailman/listinfo/python-list