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 ?
To check if a file exists, you pass the file path to the exists() function from the os. path standard library. If the file exists, the exists() function returns True . Otherwise, it returns False .
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 
                        Here's an example of dealing with a race condition when trying to atomically overwrite an existing symlink:
# os.symlink requires that the target does NOT exist. # Avoid race condition of file creation between mktemp and symlink: while True:     temp_pathname = tempfile.mktemp()     try:         os.symlink(target, temp_pathname)         break  # Success, exit loop     except FileExistsError:         time.sleep(0.001)  # Prevent high load in pathological conditions     except:         raise os.replace(temp_pathname, link_name) 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With