Steven Howe wrote: > Steve Holden wrote: >> Thomas Krüger wrote: >> >>> Tina I schrieb: >>> >>>> Now, this works but of course it catches every IOError, and I can not >>>> figure out how to restrict it to only catch the "[Errno 2]"? >>>> >>> There's an example that uses the error number: >>> http://docs.python.org/tut/node10.html#SECTION0010300000000000000000 >>> >>> >> So what you'll need to do is catch all IOError exceptions, then test >> to see if you've got (one of) the particular one(s) you are interested >> in. If not then you can re-raise the same error with a bare "raise" >> statement, and any containing exception handlers will be triggered. If >> there are none then you will see the familiar traceback termination >> message. >> >> regards >> Steve >> > you could also use some pre-testing of the filename os.path.isfile, > os.path.isdir, os.path.split are good > functions to test file/directory existence. Also to verify that you have > permission to manipulate a file, os.access is a good function.
The try first approach is better for at least two reasons: 1) It saves you an extra stat() on the disk, which can be really important for some filesystems I use :) 2) It is atomic. If os.path.isfile() returns True but the file is deleted before you open it, you are still going to have to handle the exception. -- Michael Hoffman -- http://mail.python.org/mailman/listinfo/python-list