我应该什么时候使用 pathlib.Path.mkdir() 与 os.mkdir() 或 os.makedirs()?

Sun*_*ear 9 python directory subdirectory pathlib

根据 python 3.6 文档,可以通过以下方式创建目录:

  1. pathlib.Path.mkdir(mode=0o777, parents=False, exist_ok=False)
  2. os.mkdir(path, mode=0o777, *, dir_fd=None)
  3. os.makedirs(name, mode=0o777, exist_ok=False)

问题:

  1. 它看起来像pathlib.Path.mkdir()做了大部分什么os.mkdir()os.makedirs()做什么。是pathlib.Path.mkdir()一个“现代”的实施两者的os.mkdir()os.makedirs()
  2. 我什么时候应该使用pathlib.Path.mkdir()vsos.mkdir()os.makedirs()? 有什么性能差异吗?

请解释有关 POSIX 的注意事项。谢谢。

Gab*_*elo 9

mkdir不会创建函数调用时不存在的中间级目录。makedirs做。

Path.mkdir 也可以,但它被称为 Path 对象的方法(而其他两个被称为接收路径,无论是带有路径的字符串还是 Path 对象(从 Python 3.6 开始),作为函数的参数) .

否则,行为是相同的。

  • `(Path.mkdir())[https://docs.python.org/3/library/pathlib.html#pathlib.Path.mkdir]` 有一个名为 `parents` 的参数,默认情况下传递 `False` 。如果您传递“True”,则路径的任何父级都不存在,将创建这些路径。用法: `pathObj.mkdir(parents=True, exit_ok=True)` 将创建不存在的路径部分,如果某些部分存在,则不会引发 `FileExistsError` 异常。 (3认同)