[EMAIL PROTECTED] wrote: > I do appreciate the advice, but I've got a 12 line function that does > all of that. And it works! I just wish I understood a particular line > of it.
You miss the point. The functions I posted, up until get_files_by_ext which is the equivalent of your getFileList, total 17 actual lines. The 5 extra lines give 3 extra features. Maybe in a while when you need to do a similar file search you will realize why my way is better. [snip] > The line I don't understand is: > reversed(range(len(dirnames))) This is why I wrote and documented a separate remove_hidden function, it can be tricky. If you broke it up into multiple lines, and added print statements it would be clear what it does. l = len(dirnames) # l is the number of elements in dirnames, e.g. 6 r = range(l) # r contains the numbers 0,1,2,3,4,5 rv = reversed(r) # rv contains the numbers 5,4,3,2,1,0 The problem arises from how to remove elements in a list as you are going through it. If you delete element 0, element 1 then becomes element 0, and funny things happen. That particular solution is relatively simple, it just deletes elements from the end instead. That complicated expression arises because python doesn't have "normal" for loops. The version of remove_hidden I wrote is simpler, but relies on the even more obscure lst[:] construct for re-assigning a list. Both of them accomplish the same thing though, so if you wanted, you should be able to replace those 3 lines with just dirnames[:] = [d for d in dirnames if not d.startswith('.')] -- - Justin -- http://mail.python.org/mailman/listinfo/python-list