Search code examples
pythonexceptionioerror

python - specifically handle file exists exception


I have come across examples in this forum where a specific error around files and directories is handled by testing the errno value in OSError (or IOError these days ?). For example, some discussion here - Python's "open()" throws different errors for "file not found" - how to handle both exceptions?. But, I think, that is not the right way. After all, a FileExistsError exists specifically to avoid having to worry about errno.

The following attempt didn't work as I get an error for the token FileExistsError.

try:
    os.mkdir(folderPath)
except FileExistsError:
    print 'Directory not created.'

How do you check for this and similar other errors specifically ?


Solution

  • According to the code print ..., it seems like you're using Python 2.x. FileExistsError was added in Python 3.3; You can't use FileExistsError.

    Use errno.EEXIST:

    import os
    import errno
    
    try:
        os.mkdir(folderPath)
    except OSError as e:
        if e.errno == errno.EEXIST:
            print('Directory not created.')
        else:
            raise