mkdir -p functional in Python

2022-09-05 01:11:07

有没有办法从Python中获取类似于shell上的功能。我正在寻找系统调用以外的解决方案。我确定代码少于20行,我想知道是否有人已经写了它?mkdir -p


答案 1

对于 Python ≥ 3.5,请使用 pathlib。Path.mkdir

import pathlib
pathlib.Path("/tmp/path/to/desired/directory").mkdir(parents=True, exist_ok=True)

该参数是在 Python 3.5 中添加的。exist_ok


对于Python≥3.2,os.makedirs有一个可选的第三个参数exist_ok,当,启用该功能时 - 除非提供并且现有目录具有与预期不同的权限;在这种情况下,如前所述提出:Truemkdir -pmodeOSError

import os
os.makedirs("/tmp/path/to/desired/directory", exist_ok=True)

对于更旧版本的Python,您可以使用并忽略该错误:os.makedirs

import errno    
import os

def mkdir_p(path):
    try:
        os.makedirs(path)
    except OSError as exc:  # Python ≥ 2.5
        if exc.errno == errno.EEXIST and os.path.isdir(path):
            pass
        # possibly handle other errno cases here, otherwise finally:
        else:
            raise

答案 2

在Python>=3.2中,这是

os.makedirs(path, exist_ok=True)

在早期版本中,请使用@tzot的答案


推荐