Python创建文件夹:mkdir()与makedirs()

Python创建文件夹:mkdir()与makedirs()

在文件管理中,创建文件夹是最基本的操作之一。Python 提供了 os 模块中的 mkdir()makedirs() 方法,分别用于创建单级目录和多级目录。本节将详细讲解这两种方法的用法及其区别。

1. 创建文件夹的基本方法

在文件管理中,创建文件夹的操作可以分为以下两种场景:

  • 单级文件夹:例如在当前目录下创建一个新文件夹。
  • 多级文件夹:例如一次性创建多层嵌套的文件夹路径。
2. 使用 mkdir() 方法创建单级文件夹

mkdir() 是最常用的方法之一,用于创建单级目录。如果指定的目录已存在,或者路径中有不存在的上级目录,则会引发 FileExistsErrorFileNotFoundError 异常。

import os

# 创建一个单级目录
try:
    os.mkdir("my_folder")  # 如果文件夹已存在,会抛出 FileExistsError
    print("文件夹 'my_folder' 创建成功!")
except FileExistsError:
    print("文件夹 'my_folder' 已经存在。")
except Exception as e:
    print(f"发生错误:{e}")

代码解析

  • os.mkdir("my_folder") 会在当前目录下创建名为 my_folder 的文件夹。
  • 如果该文件夹已存在,则抛出 FileExistsError,我们可以通过 try-except 捕获并提示用户。
  • Exception 捕获其他可能的错误,例如路径格式错误。
3. 使用 makedirs() 方法创建多级文件夹

当需要一次性创建多层嵌套的目录时,mkdir() 就显得无能为力。这时可以使用 makedirs() 方法。makedirs() 会递归创建路径中所有缺失的父目录。

# 使用 makedirs() 创建多级文件夹
try:
    os.makedirs("parent_folder/child_folder/sub_folder")  # 如果父目录不存在,自动创建
    print("多级文件夹 'parent_folder/child_folder/sub_folder' 创建成功!")
except FileExistsError:
    print("目标路径已存在,无法重复创建。")
except Exception as e:
    print(f"发生错误:{e}")

代码解析

  • os.makedirs("parent_folder/child_folder/sub_folder") 一次性创建路径中的所有缺失目录。
  • 如果路径已存在,抛出 FileExistsError,可以通过异常处理来提示用户。
  • 相比 mkdir()makedirs() 的优势在于无需手动检查路径中是否有缺失的上级目录。
4. 两种方法的区别
方法用途是否支持多级路径常见错误处理
mkdir()创建单级目录不支持FileExistsError, FileNotFoundError
makedirs()创建多级嵌套目录支持FileExistsError
5. 注意事项
  1. 路径检查:创建文件夹之前,可以使用 os.path.exists() 检查目标路径是否已存在,避免抛出异常。

    path = "my_folder"
    if not os.path.exists(path):
        os.mkdir(path)
        print(f"文件夹 '{path}' 已创建。")
    else:
        print(f"文件夹 '{path}' 已存在。")
    
  2. 跨平台支持:在构建路径时,应使用 os.path.join() 方法来拼接路径,而非直接使用斜杠 /,以确保跨平台兼容性。

    path = os.path.join("parent_folder", "child_folder")
    os.makedirs(path, exist_ok=True)  # 使用 exist_ok=True 避免抛出 FileExistsError
    print(f"多级文件夹 '{path}' 已创建(如果不存在)。")
    
  3. 错误处理:务必使用 try-except 捕获异常,尤其在涉及用户输入路径时,避免程序崩溃。

6. 实际应用场景
  • 批量创建目录:需要为不同的项目自动生成存储数据的目录结构。
  • 日志管理:为每天生成的日志文件创建日期命名的文件夹。
  • 配置存储:为不同用户或环境生成独立的配置目录。

通过熟练掌握 mkdir()makedirs() 的用法,可以灵活高效地管理文件夹结构,为项目的文件管理奠定良好的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据张老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值