You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
521 B
19 lines
521 B
4 years ago
|
import errno
|
||
|
import os
|
||
|
|
||
|
def ensure_dir_exists(path, mode=0o777):
|
||
|
"""ensure that a directory exists
|
||
|
|
||
|
If it doesn't exist, try to create it, protecting against a race condition
|
||
|
if another process is doing the same.
|
||
|
|
||
|
The default permissions are determined by the current umask.
|
||
|
"""
|
||
|
try:
|
||
|
os.makedirs(path, mode=mode)
|
||
|
except OSError as e:
|
||
|
if e.errno != errno.EEXIST:
|
||
|
raise
|
||
|
if not os.path.isdir(path):
|
||
|
raise IOError("%r exists but is not a directory" % path)
|