当前位置: 首页 > article >正文

python makedirs() 详解

在 Python 中,os.makedirs() 函数用于递归地创建目录。也就是说,它不仅会创建指定的目录,还会创建任何必要的父目录。这个函数在处理需要创建多级目录结构时非常有用。

1、语法

os.makedirs(name, mode=0o777, exist_ok=False)

1.1、参数

  • name:要创建的目标目录路径,可以是绝对路径或相对路径。
  • mode(可选):设置目录的权限模式,默认为 0o777(八进制表示),即读、写、执行权限对所有用户开放。
  • exist_ok(可选):如果为 True,当目标目录已经存在时不会引发异常;如果为 False(默认值),当目标目录已经存在时会引发 FileExistsError 异常。

1.2、返回值

  • 该函数没有返回值。

1.3、示例

1.3.1、基本用法

import os

# 创建单级目录

os.makedirs('test_dir')

# 创建多级目录

os.makedirs('parent_dir/child_dir/grandchild_dir')

1.3.2、使用 mode 参数

import os

# 创建目录并设置权限为 0o755

os.makedirs('secure_dir', mode=0o755)

1.3.3、使用 exist_ok 参数

import os

# 创建目录,如果目录已存在则不会引发异常

os.makedirs('existing_dir', exist_ok=True)

1.3.4、错误处理

如果目标目录已经存在且 exist_ok 参数为 False,会引发 FileExistsError 异常:

import os

try:

    os.makedirs('existing_dir')

except FileExistsError:

    print("Directory already exists")

2、实际应用

os.makedirs() 函数在需要确保目录结构存在时非常有用,例如在文件写入操作之前:

import os

def save_file(file_path, content):

    # 提取目录路径

    dir_path = os.path.dirname(file_path)

    # 创建目录(如果不存在)

    os.makedirs(dir_path, exist_ok=True)

    # 写入文件

    with open(file_path, 'w') as file:

        file.write(content)

# 使用示例

save_file('data/output/file.txt', 'Hello, world!')

通过使用 os.makedirs() 函数,可以方便地创建所需的目录结构,从而避免手动检查和创建目录的繁琐过程,提高代码的简洁性和可维护性。


http://www.kler.cn/a/396288.html

相关文章:

  • CSS基础知识01
  • 企业生产环境-麒麟V10(ARM架构)操作系统部署kafka高可用集群
  • SpringBoot整合Mybatis-Plus实践汇总
  • World of Warcraft [WeakAuras]Barney Raid Kit - Collapsing Star Indicator
  • 安全,服务器证书和SSL连接
  • 缓存cache
  • 动态规划-背包问题——[模版]完全背包问题
  • NotePad++中安装XML Tools插件
  • 接上篇-使用 element-plus 优化UI界面
  • WukongCRM:github高分开源项目,基于微服务架构 +vue ElementUI的前后端分离CRM系统
  • Linux基本指令(中)(2)
  • 数据结构 ——— 层序遍历链式二叉树
  • 01 P2367 语文成绩
  • spring boot 配置文件
  • vue3: toRef, reactive, toRefs, toRaw
  • 推荐一款高效的网站数据抓取工具:SysNucleus WebHarvy
  • Unity类银河战士恶魔城学习总结(P127 Stat ToolTip属性提示)
  • 企业BI工具如何选择?主流5款BI工具多维对比
  • Opengl光照测试
  • Vue和Vue-Element-Admin(十三):基于vue2比较学习vue3
  • 基于Python 和 pyecharts 制作招聘数据可视化分析大屏
  • windows系统开发环境使用docker打包Django程序部署至服务器Ubuntu系统中
  • PDF编辑的好东西
  • 【动手学电机驱动】 STM32-FOC(7)MCSDK Pilot 上位机控制与调试
  • vue3:computed
  • 腾讯IM web版本实现迅飞语音听写(流式版)