From eb0981496a2475fe0782bf83852110d608607dc5 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Tue, 22 Dec 2015 00:23:43 +0200 Subject: [PATCH] os: makedirs(): Rewrite to rely only on uos.mkdir(). --- os/os/__init__.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/os/os/__init__.py b/os/os/__init__.py index b47a8cb4..2a72bbf6 100644 --- a/os/os/__init__.py +++ b/os/os/__init__.py @@ -92,19 +92,21 @@ def rmdir(name): check_error(e) def makedirs(name, mode=0o777, exist_ok=False): - exists = access(name, F_OK) - if exists: - if exist_ok: - return - raise OSError(errno_.EEXIST) s = "" - for c in name.split("/"): + comps = name.split("/") + if comps[-1] == "": + comps.pop() + for i, c in enumerate(comps): s += c + "/" try: - mkdir(s) + uos.mkdir(s) except OSError as e: if e.args[0] != errno_.EEXIST: raise + if i == len(comps) - 1: + if exist_ok: + return + raise e if hasattr(uos, "ilistdir"): ilistdir = uos.ilistdir