os.mkdiros.makedirs都是Python中用于创建目录的函数,但它们之间存在一些关键的区别¹²:

  • os.mkdir:此函数用于创建单个子目录。如果指定了不存在的中间目录,它将抛出一个异常。
  • os.makedirs:此函数用于递归地创建目录。就像在bash中的mkdir -p一样,如果中间目录不存在,os.makedirs会创建所有必要的中间目录。如果叶目录已经存在或无法创建,它将抛出一个错误¹。

例如,假设我们有以下路径:/a/b/c/d,其中只有/a/b是存在的。

  • 如果我们尝试使用os.mkdir('/a/b/c/d'),它将抛出一个异常,因为/a/b/c不存在。
  • 但是,如果我们使用os.makedirs('/a/b/c/d'),它将成功创建所有不存在的中间目录以及叶目录d

此外,从Python 3.2开始,os.makedirs有一个exist_ok参数。如果将其设置为True,则即使叶目录已存在,os.makedirs也不会抛出任何异常¹。

希望这个答案对你有所帮助!如果你还有其他问题,欢迎随时向我提问。😊

源: 与必应的对话, 2024/1/19

(1) What is the difference between makedirs and mkdir of os?. https://stackoverflow.com/questions/13819496/what-is-the-difference-between-makedirs-and-mkdir-of-os.

(2) the difference between os.mkdir () and os.makedirs (). https://stackoverflow.com/questions/37948294/the-difference-between-os-mkdir-and-os-makedirs.

(3) os.mkdir()与os.makedirs()的使用方法 - 知乎. https://zhuanlan.zhihu.com/p/108211297.

(4) undefined. https://docs.python.org/2/library/os.html.