os.mkdir
和os.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.