I think wanting to create a directory if one doesn't exist or do nothing if it does exist and just use the existing directory is a fairly normal programming need. Apparently this is somewhat complicated in Python. If you use
if not os.path.exists(dirName): os.makedirs(dirName) you create a race condition. If you use try: try: os.makedirs(dirName) except OSError: pass Now you're silencing too many errors, so you need to select which errors to silence. You can check to see if the directory already exists and assume that the directory already existing is the cause of the error. try: os.makedirs(dirName) except OSError: if os.path.exists(dirName): # We are nearly safe pass else: # There was an error on creation, so make sure we know about it raise or check the error type: try: os.makedirs(dirName) except OSError, e: if e.errno != errno.EEXIST: raise IMHO, os.makedirs should do this for you with something like os.makedirs(dirName, exist = False) and have makedirs silence the error the 'right' way whatever that is, without turning it into an exercise for the user. -- http://mail.python.org/mailman/listinfo/python-list