背景
小编之前写过一篇介绍 pathlib 标准库的文章,最近在做项目时,又发现其有一个更好用的功能,分享给大家,供大家参考学习
小编环境
import sys
print('python 版本:',sys.version.split('|')[0])
#python 版本: 3.11.11
创建目录方法:Path.mkdir()
pathlib.Path.mkdir() 方法是 Python 中创建目录的核心方法,提供了灵活且安全的目录创建功能
方法签名:
Path.mkdir(mode=0o777, parents=False, exist_ok=False)
参数详解:
1. mode (可选)
- 作用: 设置目录权限(Unix/Linux/Mac 系统有效)
- 默认值: 0o777 (八进制,表示最大权限)
- 注意: 在 Windows 上此参数被忽略
常用权限值:
from pathlib import Path
# 创建用户可读/写/执行,组和其他用户只读/执行的目录
Path("my_dir").mkdir(mode=0o755) # drwxr-xr-x
# 创建只有用户可读/写/执行的目录
Path("private_dir").mkdir(mode=0o700) # drwx------
2. parents (可选)
- 作用: 是否自动创建父目录
-
默认值:
False -
当
False时: 父目录必须存在,否则抛出FileNotFoundError -
当
True时: 自动创建所有不存在的父目录
3. exist_ok (可选)
- 作用: 目录已存在时的处理方式
-
默认值:
False -
当
False时: 目录已存在会抛出FileExistsError -
当
True时: 目录已存在不会报错
基础用法示例
示例 1: 创建单级目录
from pathlib import Path
# 在当前目录下创建新文件夹
Path("new_folder").mkdir()
# 创建指定路径的目录
Path("/tmp/example").mkdir()
示例 2: 创建多级目录(使用 parents=True)
from pathlib import Path
# 传统方式 - 需要逐级检查创建
# 这里演示只判断父目录是否存在
path = Path("a/b/c/d/e")
if not path.parent.exists():
path.parent.mkdir()
path.mkdir()
# 简化方式 - 一次性创建所有层级
Path("a/b/c/d/e").mkdir(parents=True)
示例 3: 安全创建目录(使用 exist_ok=True)
from pathlib import Path
# 安全创建 - 目录存在也不报错
Path("my_project").mkdir(exist_ok=True)
# 等同于检查是否存在再创建
path = Path("my_project")
if not path.exists():
path.mkdir()
历史相关文章
以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货