python判断文件夹是否存在,不存在就创建
·
在 Python 中判断文件夹是否存在,不存在时创建,可以使用以下两种常用方法:
方法一:使用 os 模块(兼容性更好)
import os
def ensure_directory_exists(directory_path):
"""
确保文件夹存在(不存在时创建)
:param directory_path: 文件夹路径
"""
try:
# 创建目录(exist_ok=True 表示目录已存在时不报错)
os.makedirs(directory_path, exist_ok=True)
print(f"目录已确保存在: {directory_path}")
except OSError as error:
print(f"创建目录失败: {error}")
# 使用示例
if __name__ == "__main__":
folder_path = "./data/output"
ensure_directory_exists(folder_path)
方法二:使用 pathlib 模块(更现代的对象导向风格)
from pathlib import Path
def ensure_directory_exists(directory_path):
"""
确保文件夹存在(不存在时创建)
:param directory_path: 文件夹路径
"""
path = Path(directory_path)
try:
# 创建目录(parents=True 表示创建父目录,exist_ok=True 表示目录已存在时不报错)
path.mkdir(parents=True, exist_ok=True)
print(f"目录已确保存在: {directory_path}")
except OSError as error:
print(f"创建目录失败: {error}")
# 使用示例
if __name__ == "__main__":
folder_path = "./data/output"
ensure_directory_exists(folder_path)
关键点说明:
-
自动创建父目录:
os.makedirs和Path.mkdir(parents=True)都会自动创建路径中所有不存在的父目录
-
安全处理已存在目录:
exist_ok=True参数确保当目录已存在时不会引发FileExistsError
-
异常处理:
- 捕获
OSError可处理权限不足、无效路径等常见问题
- 捕获
-
路径格式:
- 支持绝对路径(
/home/user/dir)和相对路径(./dir) - 自动处理末尾的路径分隔符(
/或\)
- 支持绝对路径(
实际应用场景:
- 保存文件前确保输出目录存在
- 初始化项目目录结构
- 创建临时工作目录
- 准备日志文件存储目录
扩展功能:
如果需要创建用户目录(如文档、图片目录),可以使用:
from pathlib import Path
# 创建用户主目录下的特定文件夹
special_folder = Path.home() / "Documents" / "MyProject"
special_folder.mkdir(parents=True, exist_ok=True)
这两种方法都经过了广泛的验证,推荐使用 pathlib 版本(Python 3.4+),它提供了更直观的面向对象接口。对于需要兼容 Python 2.7 的项目,则使用 os 模块的版本。
更多推荐


所有评论(0)