On 2023-04-28 16:55, Chris Green wrote:
I'm sure I'm missing something obvious here but I can't see an elegant
way to do this.  I want to create a directory, but if it exists it's
not an error and the code should just continue.

So, I have:-

     for dirname in listofdirs:
         try:
             os.mkdir(dirname)
         except FileExistsError:
             # so what can I do here that says 'carry on regardless'
         except:
             # handle any other error, which is really an error

         # I want code here to execute whether or not dirname exists


Do I really have to use a finally: block?  It feels rather clumsy.

I suppose I could test if the directory exists before the os.mkdir()
but again that feels a bit clumsy somehow.

I suppose also I could use os.mkdirs() with exist_ok=True but again
that feels vaguely wrong somehow.

I'd do this:

    from contextlib import suppress

    for dirname in listofdirs:
        with suppress(FileExistsError):
            os.mkdir(dirname)

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to