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