How to 'ignore' an error in Python?

MRAB python at mrabarnett.plus.com
Fri Apr 28 13:05:23 EDT 2023


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)



More information about the Python-list mailing list