当前位置:首页>python>[python办公自动化]创建文件夹实操教程:从基础操作到实战应用

[python办公自动化]创建文件夹实操教程:从基础操作到实战应用

  • 2026-10-01 08:28:17
[python办公自动化]创建文件夹实操教程:从基础操作到实战应用

在Python的文件与目录处理中,创建文件夹是最基础且高频的操作之一,无论是数据处理中按日期分类存储文件、搭建标准化项目目录结构,还是开发自动化脚本实现文件管理,掌握文件夹的创建方法都是必备技能。Python为开发者提供了两种核心实现方式,分别是传统的os模块和Python3.4+推出的面向对象的pathlib模块,前者兼容性强、适配所有Python版本,后者语法更简洁、天然支持跨平台,能满足不同场景下的开发需求。本教程将从基础语法、实操案例、避坑技巧三个维度,详细讲解Python创建文件夹的全流程,帮助新手快速上手并灵活应用。

一、基础操作:使用os模块创建文件夹

os模块是Python与操作系统交互的内置核心模块,无需额外安装,通过os.mkdir()和os.makedirs()两个函数可分别实现单级和多级文件夹的创建,是入门阶段的首选方法,也是处理简单目录创建需求的高效方式。

1. 单级文件夹创建:os.mkdir()

os.mkdir()函数的作用是创建单级文件夹,即仅能创建路径中的最后一级目录,要求上级目录必须已存在,否则会抛出FileNotFoundError异常。同时,若目标文件夹已存在,直接调用该函数会触发FileExistsError异常,因此创建前建议增加文件夹是否存在的判断。
基础语法:

import os
# 定义文件夹路径,支持相对路径和绝对路径

folder_path = "test_folder"
# 检查文件夹是否存在,不存在则创建

if
 not os.path.exists(folder_path):
    os.mkdir(folder_path)
    print
(f"单级文件夹{folder_path}创建成功")
else
:
    print
(f"单级文件夹{folder_path}已存在,无需重复创建")

其中,os.path.exists()用于检测指定路径是否存在,是规避重复创建报错的关键步骤;路径参数既可以是相对路径(如上述示例的test_folder,在当前工作目录下创建),也可以是绝对路径(如Windows系统C:\python\test_folder、Linux/macOS系统/home/python/test_folder)。

2. 多级文件夹创建:os.makedirs()

当需要创建嵌套的多级文件夹(如data/2026/02/raw)时,os.mkdir()无法满足需求,此时可使用os.makedirs()函数,该函数能一次性创建路径中所有不存在的上级目录,无需手动逐层搭建。
为简化代码,os.makedirs()提供了exist_ok参数,设置为True时,即使目标文件夹已存在,程序也不会报错,可替代os.path.exists()的手动判断,让代码更简洁。
基础语法:

import os
# 定义多级文件夹路径

multi_folder_path = "data/2026/02/raw"
# exist_ok=True:忽略已存在的文件夹,避免报错

os.makedirs(multi_folder_path, exist_ok=True)
print
(f"多级文件夹{multi_folder_path}创建成功")

该函数在数据处理、日志存储等场景中实用性极强,例如按年/月/日创建分层目录存储每日数据,可通过一行代码完成目录结构搭建,大幅提升开发效率。

二、进阶操作:使用pathlib模块创建文件夹

Python3.4+引入的pathlib模块,以面向对象的方式重构了路径操作逻辑,将路径作为对象进行处理,语法更直观、可读性更高,且天然支持跨平台路径分隔符(自动适配Windows的\和Linux/macOS的/),是现代Python开发中推荐的路径处理方式。
pathlib模块通过Path类整合了单级和多级文件夹的创建功能,无需区分不同函数,仅通过参数调整即可实现两种需求,逻辑更统一。

核心语法:Path.mkdir()

基础语法:

from pathlib import Path
# 1. 创建单级文件夹

single_dir = Path("new_test_folder")
if
 not single_dir.exists():
    single_dir.mkdir()
    print
("单级文件夹创建成功")

# 2. 创建多级文件夹,核心参数parents=True

multi_dir = Path("project/src/utils")
# parents=True:自动创建所有不存在的上级目录;exist_ok=True:忽略已存在的文件夹

multi_dir.mkdir(parents=True, exist_ok=True)
print
("多级文件夹创建成功")

关键参数说明:

  • • parents:默认值为False,仅创建最后一级目录,功能等同于os.mkdir();设置为True时,创建所有不存在的上级目录,功能等同于os.makedirs();
  • • exist_ok:默认值为False,重复创建时报错;设置为True时跳过已存在的文件夹。

pathlib的核心优势在于路径操作的一体化,创建文件夹后,可直接通过对象属性和方法实现路径拼接、上级目录获取等操作,例如:

# 拼接文件路径,无需手动处理分隔符
file_path = multi_dir / "config.py"
# 获取上级目录

parent_dir = multi_dir.parent
print
(f"拼接后的文件路径:{file_path}")
print
(f"上级目录:{parent_dir}")

这种写法避免了手动拼接路径字符串带来的跨平台兼容问题,让代码更简洁、更易维护。

三、实战案例:自动化创建标准化项目目录结构

在实际开发中,创建文件夹并非孤立操作,往往需要为项目搭建标准化的目录结构,例如数据处理项目、Python开发项目,通过Python脚本可实现目录的批量创建,避免手动新建的繁琐操作,同时保证目录结构的统一性。
以下以数据处理项目为例,演示如何使用pathlib模块批量创建规范化目录,该脚本基于脚本自身所在目录构建绝对路径,避免因运行位置变化导致的路径错误,适配所有运行场景。
实战代码:

from pathlib import Path

# 定义项目根目录:获取当前脚本的绝对路径,并定位到其父目录

project_root = Path(__file__).absolute().parent
# 定义需要创建的项目目录结构,按需添加/修改

dir_structure = [
    "data/raw"
,          # 存储原始未处理数据
    "data/processed"
,    # 存储清洗后的数据
    "src/scripts"
,       # 存储核心运行脚本
    "src/utils"
,         # 存储工具函数/公共模块
    "output/figure"
,     # 存储可视化图表
    "output/report"
,     # 存储分析报告
    "logs"
               # 存储程序运行日志
]

# 批量创建目录

for
 dir_path in dir_structure:
    # 拼接完整目录路径

    full_dir = project_root / dir_path
    # 创建设置parents=True和exist_ok=True,适配所有场景

    full_dir.mkdir(parents=True, exist_ok=True)
    print
(f"目录创建完成:{full_dir}")

print
("\n所有项目目录已批量创建完成!")

四、避坑指南:创建文件夹的常见问题与解决方案

在实际开发中,创建文件夹时容易因路径、权限、字符等问题触发异常,掌握以下常见问题的解决方案,能大幅提升程序的健壮性,避免不必要的报错。

1. 权限不足报错(PermissionError)

问题表现:调用创建函数时,抛出PermissionError: [Errno 13] Permission denied异常。
原因:当前运行Python程序的用户,没有对目标路径的写入权限(如尝试在Windows系统C盘根目录、Linux系统/root目录创建文件夹)。
解决方案:① 更换到用户有写入权限的目录(如用户桌面、个人文档目录);② 以管理员/root身份运行Python程序(谨慎操作);③ 检查目标路径的权限设置,开放写入权限。

2. 路径包含非法字符(OSError)

问题表现:抛出OSError: [Errno 22] Invalid argument异常。
原因:不同操作系统对路径字符有严格限制,例如Windows不允许路径包含\ / : * ? " < > |等字符,Linux/macOS不允许包含/。
解决方案:创建路径前对文件夹名称进行字符清洗,过滤非法字符;采用标准化命名规则,仅使用字母、数字、下划线和短横线。

3. 跨平台兼容问题

问题表现:在Windows系统编写的代码,在Linux/macOS系统运行时出现路径错误。
原因:手动拼接路径时使用了固定的分隔符(如Windows的\)。
**解决方案**:① 优先使用os.path.join()(os模块)或pathlib的/运算符拼接路径,自动适配系统分隔符;② 避免手动书写路径分隔符,彻底解决跨平台问题。

4. 相对路径导致的路径错误

问题表现:在不同目录下运行脚本,创建的文件夹位置不一致。
原因:使用相对路径时,Python以程序运行目录为基准,而非脚本所在目录。
解决方案:基于__file__属性构建绝对路径(如实战案例中的写法),让文件夹创建位置始终固定在脚本所在项目目录,不受运行位置影响。

五、总结

Python创建文件夹的核心方法围绕os模块和pathlib模块展开,两者各有优势,可根据开发场景和Python版本灵活选择:

  1. 1. 若需要兼容Python2.x或处理简单的目录创建需求,选择os模块,os.mkdir()适用于单级目录,os.makedirs()适用于多级目录;
  2. 2. 若使用Python3.4+版本,推荐使用pathlib模块,面向对象的语法更简洁,天然支持跨平台,且整合了路径拼接、属性获取等功能,一站式解决路径处理需求。

PS:如有办公自动化需求,可以联系QQ 2312890532进行沟通,以下是下单链接:

编辑 | star

stardustia,连接世界、连接未来的秘密宝藏之地,通往无限可能,只要努力追寻,我们的征途是世间万物、星辰大海。

↑更多内容请关注stardustia微信公众号↑

关注、点赞、转发,让更多人发现stardustia↓

最新文章

随机文章