目 录CONTENT

文章目录

Python 程序设计 - 21. os 模块与文件夹操作

李航
2025-12-09 / 0 评论 / 0 点赞 / 10 阅读 / 0 字

Python 程序设计 - 21. os 模块与文件夹操作

  1. 引入
    在实际开发中,文件系统操作是不可避免的任务之一。Python 提供了非常强大的 os 模块,它不仅能够让你执行文件操作,还可以进行目录(文件夹)操作、环境变量的操作等。
    本节将重点介绍 os 模块的常用功能,特别是文件夹的创建、删除、重命名和遍历等操作。通过学习这些内容,你将能有效地管理和操作文件系统。

  2. os 模块简介
    os 模块是 Python 内置的标准库模块,它提供了与操作系统交互的接口。通过 os 模块,你可以进行文件和文件夹的操作,还能处理系统信息、环境变量、路径操作等。
    常见的 os 模块功能包括:

1.创建、删除、重命名文件和文件夹。
2.遍历目录中的文件。
3.获取文件属性(如大小、修改时间等)。
4.操作文件路径。

常用 os 模块函数

函数作用
os.mkdir(path)创建文件夹
os.makedirs(path)递归创建文件夹(如果父目录不存在也会创建)
os.rmdir(path)删除空文件夹
os.removedirs(path)删除多级空文件夹
os.rename(src, dst)重命名文件或文件夹
os.listdir(path)返回指定目录下所有文件和文件夹的名称列表
os.path.exists(path)判断指定路径是否存在
os.path.isdir(path)判断指定路径是否为文件夹
os.path.isfile(path)判断指定路径是否为文件
  1. 文件夹操作实例
    (1)创建文件夹
    语法
    os.mkdir(path)

该方法用于在指定路径下创建一个空的文件夹。如果文件夹已存在,则会抛出 FileExistsError 错误。
案例:
import os

创建单个文件夹

folder_path = "my_folder"
if not os.path.exists(folder_path): # 判断文件夹是否已存在
os.mkdir(folder_path)
print(f"文件夹 '{folder_path}' 创建成功!")
else:
print(f"文件夹 '{folder_path}' 已存在!")

(2)递归创建文件夹
有时我们需要创建多级目录(例如 dir1/dir2/dir3),如果父目录不存在,使用 os.mkdir() 会抛出错误。此时可以使用 os.makedirs()。
语法
os.makedirs(path)

案例:
import os

递归创建文件夹

folder_path = "dir1/dir2/dir3"
if not os.path.exists(folder_path): # 判断多级文件夹是否已存在
os.makedirs(folder_path)
print(f"多级文件夹 '{folder_path}' 创建成功!")
else:
print(f"多级文件夹 '{folder_path}' 已存在!")

(3)删除文件夹
语法
os.rmdir(path) # 删除空文件夹

如果文件夹不为空,使用 os.rmdir() 会抛出 OSError 错误。如果你需要删除非空文件夹,可以使用 shutil.rmtree(),这属于 shutil 模块。
案例:
import os

删除空文件夹

folder_path = "empty_folder"
if os.path.exists(folder_path) and os.path.isdir(folder_path):
os.rmdir(folder_path)
print(f"文件夹 '{folder_path}' 删除成功!")
else:
print(f"文件夹 '{folder_path}' 不存在或不为空!")

(4)重命名文件夹
语法
os.rename(src, dst)

该方法用于重命名文件或文件夹。
案例:
import os

重命名文件夹

old_name = "old_folder"
new_name = "new_folder"

if os.path.exists(old_name):
os.rename(old_name, new_name)
print(f"文件夹 '{old_name}' 重命名为 '{new_name}' 成功!")
else:
print(f"文件夹 '{old_name}' 不存在!")

  1. 遍历文件夹中的文件
    你可以使用 os.listdir() 方法获取文件夹中的所有文件和子文件夹名称。该方法返回一个列表,包含目录下的文件名和文件夹名。
    语法
    os.listdir(path)

案例:
import os

列出文件夹中的所有文件和文件夹

folder_path = "my_folder"
if os.path.exists(folder_path):
files = os.listdir(folder_path)
print(f"'{folder_path}' 文件夹中的内容:")
for file in files:
print(file)
else:
print(f"文件夹 '{folder_path}' 不存在!")

(5)判断路径是文件夹还是文件
你可以通过 os.path.isdir() 和 os.path.isfile() 来判断给定的路径是文件夹还是文件。
语法
os.path.isdir(path) # 如果是文件夹,返回 True
os.path.isfile(path) # 如果是文件,返回 True

案例:
import os

path = "some_path"

if os.path.isdir(path):
print(f"'{path}' 是一个文件夹")
elif os.path.isfile(path):
print(f"'{path}' 是一个文件")
else:
print(f"'{path}' 既不是文件也不是文件夹")

  1. 总结与练习题
    通过本节学习,我们掌握了如何使用 os 模块进行文件夹操作,包括创建、删除、重命名文件夹,以及遍历文件夹内容等基本操作。你可以利用这些知识管理文件系统中的文件夹,提高程序的灵活性。

  2. 练习题(不少于 3 题)
    练习 1
    编写程序,在当前目录下创建一个名为 test_folder 的文件夹,如果文件夹已存在,则输出提示信息。
    练习 2
    编写程序,递归创建一个名为 dir1/dir2/dir3 的多级文件夹,并在其中创建一个名为 test.txt 的空文件。
    练习 3
    编写程序,遍历当前目录下的所有文件和文件夹,并输出它们的名称。如果是文件,则输出 "文件",如果是文件夹,则输出 "文件夹"。
    练习 4
    编写程序,重命名当前目录下的文件夹 old_folder 为 new_folder。

  3. 练习题答案
    答案 1
    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}' 已存在!")

答案 2
import os

folder_path = "dir1/dir2/dir3"
if not os.path.exists(folder_path):
os.makedirs(folder_path)
print(f"多级文件夹 '{folder_path}' 创建成功!")

创建空文件

file_path = os.path.join(folder_path, "test.txt")
open(file_path, "w").close()

答案 3
import os

path = "."
files = os.listdir(path)

for file in files:
full_path = os.path.join(path, file)
if os.path.isdir(full_path):
print(f"'{file}' 是一个文件夹")
elif os.path.isfile(full_path):
print(f"'{file}' 是一个文件")

答案 4
import os

old_folder = "old_folder"
new_folder = "new_folder"

if os.path.exists(old_folder):
os.rename(old_folder, new_folder)
print(f"文件夹 '{old_folder}' 已重命名为 '{new_folder}'")
else:
print(f"文件夹 '{old_folder}' 不存在!")

通过这些练习,你已经掌握了 Python 文件夹操作的基本技能!接下来,你可以开始运用这些知识来实现更复杂的文件管理任务。

0

评论区