On Aug 30, 7:00 pm, Steve Holden <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: > >> How could it not be an exception, in the plain English sense of the > >> word? Most certainly you're asking for the index because you want to do > >> something with the index. If the item is not found, you have no index, > >> so that's a special case that must be handled separately. There is no > >> logical difference between handling that special case in an except > >> clause versus handling it with an if-branch. > > > In my case of have done os.listdir() on two directories. I want to see > > what files are in directory A that are not in directory B. > > I have used exceptions in other languages and only do so on logic that > > should never happen. In this case it is known that some of the files > > will not be in both lists. I just want to know which ones. > > And, as is so often the case, once the *real* problem is stated a more > elegant solution become available - in this case, using sets. > > afiles = set(os.listdir(dira)) > bfiles = set(os.listdir(dirb)) > > for f in (afiles - bfiles): > print "Not common:", f > > You can also generate the files that are in one directory but ot the > other with > > (afiles | bfiles) - (afiles & bfiles) > ... which can be written more concisely as:
afiles ^ bfiles :-) -- http://mail.python.org/mailman/listinfo/python-list