杰瑞科技汇

Python中如何建立Python文件夹?

在 Python 中创建文件夹(目录)非常简单,主要使用 os 模块或 pathlib 模块,下面我将为你详细介绍几种常用且推荐的方法。

Python中如何建立Python文件夹?-图1
(图片来源网络,侵删)

使用 os 模块 (经典方法)

os 模块提供了与操作系统交互的功能,os.makedirs() 函数是创建文件夹的标准方法。

创建单个文件夹

使用 os.mkdir() 函数,如果文件夹的父目录不存在,它会抛出 FileNotFoundError 错误。

import os
folder_name = "my_python_folder"
# 检查文件夹是否已存在,如果不存在则创建
if not os.path.exists(folder_name):
    try:
        os.mkdir(folder_name)
        print(f"文件夹 '{folder_name}' 创建成功!")
    except OSError as e:
        print(f"创建文件夹时出错: {e}")
else:
    print(f"文件夹 '{folder_name}' 已存在。")

创建多级嵌套文件夹 (最常用)

使用 os.makedirs() 函数,这个函数非常强大,它可以一次性创建所有不存在的父目录,就像 Linux/Unix 中的 mkdir -p 命令一样。

import os
# 要创建的嵌套文件夹路径
# 在 Windows 上是 "project/src/utils"
# 在 macOS/Linux 上是 "project/src/utils"
# 使用 os.path.join 可以自动处理不同操作系统的路径分隔符
folder_path = os.path.join("project", "src", "utils")
# 创建文件夹
# exist_ok=True 的意思是,如果文件夹已经存在,不会报错
os.makedirs(folder_path, exist_ok=True)
print(f"文件夹 '{folder_path}' 创建成功!")

os.makedirs() 的关键参数:

Python中如何建立Python文件夹?-图2
(图片来源网络,侵删)
  • exist_ok (默认为 False):如果设置为 True,当目标文件夹已存在时,函数不会抛出 FileExistsError 异常,而是静默跳过,这通常是你想要的行为,因为它可以防止脚本在多次运行时出错。

使用 pathlib 模块 (现代、面向对象的方法)

从 Python 3.4 开始,pathlib 模块被引入,它提供了一种更现代、更直观、面向对象的方式来处理文件系统路径。这是目前官方推荐的方式

创建单个文件夹

使用 Path.mkdir() 方法。

from pathlib import Path
folder_name = "my_python_folder_pathlib"
# 创建一个 Path 对象
p = Path(folder_name)
# 检查文件夹是否存在,如果不存在则创建
if not p.exists():
    try:
        p.mkdir()
        print(f"文件夹 '{p}' 创建成功!")
    except OSError as e:
        print(f"创建文件夹时出错: {e}")
else:
    print(f"文件夹 '{p}' 已存在。")

创建多级嵌套文件夹

Path.mkdir() 同样可以创建多级目录,但需要设置 parents=True 参数。

from pathlib import Path
# 要创建的嵌套文件夹路径
# Path 对象会自动处理路径分隔符,无论在什么操作系统上
folder_path = Path("project/src/utils")
# 创建文件夹
# parents=True: 创建所有必需的父目录
# exist_ok=True: 如果目录已存在,不报错
folder_path.mkdir(parents=True, exist_ok=True)
print(f"文件夹 '{folder_path}' 创建成功!")

Path.mkdir() 的关键参数:

Python中如何建立Python文件夹?-图3
(图片来源网络,侵删)
  • parents (默认为 False):如果设置为 True,允许创建所有不存在的父目录。
  • exist_ok (默认为 False):如果设置为 True,当目标文件夹已存在时,不会抛出 FileExistsError 异常。

总结与对比

特性 os 模块 pathlib 模块
方法 os.makedirs(path, exist_ok=True) Path(path).mkdir(parents=True, exist_ok=True)
风格 过程式,函数式 面向对象
路径处理 需要手动使用 os.path.join 来拼接路径,以保证跨平台兼容性。 Path 对象直接使用 运算符拼接,非常直观且跨平台。
可读性 代码相对传统。 代码更清晰,更符合 Pythonic 风格。
推荐度 仍然可用,尤其是在旧版 Python 中。 强烈推荐,是 Python 3.4+ 处理文件路径的现代标准。

最佳实践

在编写新代码时,优先使用 pathlib,它更安全、更易读,并且是 Python 语言发展的方向。

使用 pathlib 的完整示例:

from pathlib import Path
import os # 可以用来获取当前工作目录等
# 定义你想创建的文件夹的相对路径
# 你可以把它放在任何你想要的地方,比如当前目录下的 "data/raw"
# 使用 / 来拼接路径,非常方便!
new_folder_path = Path("data/raw/processed_data")
# 使用 with 语句块(虽然这里不是必须的,但是一种好习惯)
# 创建文件夹
try:
    # parents=True 确保父目录 "data" 和 "data/raw" 也会被创建
    # exist_ok=True 防止文件夹已存在时出错
    new_folder_path.mkdir(parents=True, exist_ok=True)
    print(f"成功在以下路径创建文件夹: {os.path.abspath(new_folder_path)}")
except Exception as e:
    print(f"创建文件夹失败: {e}")

运行这段代码后,你的项目目录下就会出现一个 data/raw/processed_data 的文件夹结构。

分享:
扫描分享到社交APP
上一篇
下一篇