pin_drop当前位置:知识文库 ❯ 图文

os.mkdir创建单层目录 - Python文件夹创建操作教程

一、函数概述

os.mkdir() 函数用于创建一个新目录。它只能创建单层目录,如果父目录不存在则会报错。如需递归创建多层目录,请使用 os.makedirs()


二、语法与参数

语法

代码示例

os.mkdir(path, mode=0o777, *, dir_fd=None)

参数说明

参数 类型 说明
path str / bytes 要创建的目录路径
mode int 目录权限模式(Windows上基本忽略),默认0o777
dir_fd int / None 目录文件描述符(高级用法)

返回值

无返回值。如果目录已存在或父目录不存在,将抛出相应异常。


三、基本用法示例

创建单个目录

代码示例

import os

new_dir = 'test_folder'
if not os.path.exists(new_dir):
    os.mkdir(new_dir)
    print(f"目录 '{new_dir}' 创建成功")
else:
    print(f"目录 '{new_dir}' 已存在")

输出:

代码示例

目录 'test_folder' 创建成功

小贴士

创建目录前建议先用 os.path.exists() 检查目录是否已存在,避免重复创建导致 FileExistsError 异常。


四、使用绝对路径创建目录

代码示例

import os

new_dir = os.path.join(os.getcwd(), 'logs')
try:
    os.mkdir(new_dir)
    print(f"目录创建成功: {new_dir}")
except FileExistsError:
    print(f"目录已存在: {new_dir}")

输出:

代码示例

目录创建成功: C:\Users\example\project\logs

五、创建目录时的常见错误

代码示例

import os

# 错误1:父目录不存在
try:
    os.mkdir('parent/child/grandchild')
except FileNotFoundError as e:
    print(f"错误: 父目录不存在 - {e}")

# 错误2:目录已存在
try:
    os.mkdir('existing_dir')
except FileExistsError as e:
    print(f"错误: 目录已存在 - {e}")

输出:

代码示例

错误: 父目录不存在 - [Errno 2] No such file or directory: 'parent/child/grandchild'

常见异常类型:

  • FileNotFoundError:父目录不存在

  • FileExistsError:目标目录已存在

  • PermissionError:没有创建目录的权限


六、实际应用场景

  • 场景1:在项目初始化时创建必要的目录结构(如logs、data、output等)

  • 场景2:在文件下载程序中,按日期创建目录存储下载文件

  • 场景3:在数据处理脚本中,为每个处理批次创建独立的输出目录


七、注意事项

注意:os.mkdir()只能创建单层目录,父目录必须存在。

注意:如果目录已存在,会抛出FileExistsError。

注意:mode参数在Windows上基本无效,仅在Unix系统上设置目录权限。


八、创建目录方法对比

方法 功能 父目录不存在时
os.mkdir() 创建单层目录 报错FileNotFoundError
os.makedirs() 递归创建多层目录 自动创建父目录
pathlib.Path.mkdir() 面向对象创建目录 可选exist_ok参数

九、小结

  • os.mkdir()用于创建单层目录,父目录必须存在

  • 创建前应检查目录是否已存在,避免FileExistsError

  • 如需创建多层嵌套目录,使用os.makedirs()更方便


十、练习题

练习1

编写程序,在当前目录下创建一个名为'my_project'的目录,并在其中创建'src'和'docs'子目录。

练习2

编写一个安全创建目录的函数,如果目录已存在则跳过,如果父目录不存在则使用os.makedirs()创建。

常见问题

os.mkdir()和os.makedirs()有什么区别?

os.mkdir()只能创建单层目录,父目录必须存在;而os.makedirs()可以递归创建多层目录,父目录不存在时会自动创建。例如创建'a/b/c',os.mkdir()会失败,而os.makedirs()会成功。

mode参数的作用是什么?

mode参数用于设置目录的权限(Unix系统上有效),默认值为0o777(rwxrwxrwx)。实际权限会受到系统umask的影响。在Windows上此参数基本被忽略,目录权限由系统默认设置。

如何批量创建多个目录?

可以使用循环遍历目录列表,逐个调用os.mkdir()。或者使用os.makedirs()配合循环,也可以使用pathlib模块的Path.mkdir()方法,代码更简洁。

os.mkdir()可以创建带中文名称的目录吗?

可以。Python 3默认使用Unicode字符串,完全支持中文目录名。只需确保文件系统的编码支持中文即可,现代操作系统(Windows、Linux、macOS)都支持Unicode路径。

标签: os.mkdir Python教程 创建目录 文件夹操作 异常处理

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: os.chdir切换工作目录 - Python目录操作与路径切换教程 下一篇: os.makedirs递归创建多层目录 - Python文件夹创建教程

poll相关推荐