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