使用 Python 创建目录及其父目录
在文件系统领域,通常需要在指定路径创建目录以及一路上任何丢失的父目录。这模仿了 Bash 的 mkdir -p 命令的功能。
现代 Python (≥ 3.5):
Python 的 pathlib 模块提供了一种便捷的方法来处理此问题:
from pathlib import Path Path("/my/directory").mkdir(parents=True, exist_ok=True)
老Python版本:
使用 os 模块:
import os if not os.path.exists(directory): os.makedirs(directory)
如评论所述,此方法存在潜在的竞争条件。为了解决这个问题,您可以使用第二个 os.path.exists 调用或捕获 OSError 并检查嵌入的错误代码:
import os, errno try: os.makedirs(directory) except OSError as e: if e.errno != errno.EEXIST: raise
但是,这会带来丢失其他错误的风险。
改进的 Python 版本:
Python 3.3 引入了 FileExistsError,它简化错误处理:
try: os.makedirs("path/to/directory") except FileExistsError: # directory already exists pass
Python 3.2 还在 os.makedirs 中添加了 exit_ok 参数:
os.makedirs("path/to/directory", exist_ok=True) # succeeds even if directory exists.
以上是如何在Python中创建目录及其父目录?的详细内容。更多信息请关注PHP中文网其他相关文章!