Python 标准库之pathlib(二),路径操作

背景

小编之前写过一篇介绍 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 ,不定期分享干货

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容