(13)100天python从入门到拿捏《目录操作》
os
模块用于文件和目录操作
文章目录
- `os` 模块用于文件和目录操作
- 一、`os` 模块简介
- 二、常用文件与目录操作方法
- 1️⃣ 获取当前工作目录
- 2️⃣ 改变当前工作目录
- 3️⃣ 创建目录
- 4️⃣ 删除目录
- 5️⃣ 列出目录内容
- 6️⃣ 重命名文件或目录
- 7️⃣ 删除文件
- 8️⃣ 判断文件或目录是否存在
- 9️⃣ 判断路径类型
- 🔟 获取文件的绝对路径
- 1️⃣1️⃣ 获取文件路径的目录与文件名
- 1️⃣2️⃣ 拼接路径
- 1️⃣3️⃣ 拆分路径
- 1️⃣4️⃣ 获取文件大小
- 1️⃣5️⃣ 遍历目录树(递归)
- 三、综合实战案例
- 四、总结表格
一、os
模块简介
os
模块是 Python 内置的一个标准库,用于与操作系统进行交互。
它可以执行
- 文件与目录的创建、删除、重命名;
- 获取文件属性;
- 遍历目录;
- 获取系统信息(如路径、环境变量);
- 以及执行系统命令。
使用前需先导入:
import os
二、常用文件与目录操作方法
1️⃣ 获取当前工作目录
os.getcwd()
📘 示例
import os
print("当前工作目录:", os.getcwd())
🧾 输出示例
当前工作目录: C:\Users\oyaZXL\Desktop\
2️⃣ 改变当前工作目录
os.chdir(path)
📘 示例
os.chdir("C:/Users/lang/Documents")
print("切换后目录:", os.getcwd())
🧾 输出
切换后目录: C:\Users\lang\Documents
3️⃣ 创建目录
os.mkdir(path)
os.makedirs(path)
mkdir()
:只能创建一级目录;makedirs()
:可递归创建多级目录。
📘 示例
os.mkdir("test_folder")
os.makedirs("a/b/c") # 递归创建多级目录
4️⃣ 删除目录
os.rmdir(path)
os.removedirs(path)
rmdir()
:删除空目录;removedirs()
:递归删除多级空目录。
📘 示例
os.rmdir("test_folder")
os.removedirs("a/b/c")
5️⃣ 列出目录内容
os.listdir(path)
📘 示例
files = os.listdir(".") # 列出当前目录所有文件和子目录
print(files)
🧾 输出
['mlp_min.ipynb', 'part_function.ipynb', 'README.md', '深度神经网络技术详解.md']
6️⃣ 重命名文件或目录
os.rename(old_name, new_name)
📘 示例
os.rename("data.txt", "data_backup.txt")
7️⃣ 删除文件
os.remove(path)
📘 示例
os.remove("data_backup.txt")
8️⃣ 判断文件或目录是否存在
os.path.exists(path)
📘 示例
if os.path.exists("example.txt"):print("文件存在")
else:print("文件不存在")
9️⃣ 判断路径类型
os.path.isfile(path)
os.path.isdir(path)
📘 示例
print(os.path.isfile("data.txt")) # True
print(os.path.isdir("images")) # True
🔟 获取文件的绝对路径
os.path.abspath(path)
📘 示例
print(os.path.abspath("data.txt"))
1️⃣1️⃣ 获取文件路径的目录与文件名
os.path.dirname(path)
os.path.basename(path)
📘 示例
path = "C:/Users/lang/Desktop/data.txt"
print("目录名:", os.path.dirname(path))
print("文件名:", os.path.basename(path))
🧾 输出
目录名: C:/Users/lang/Desktop
文件名: data.txt
1️⃣2️⃣ 拼接路径
os.path.join(path1, path2, ...)
📘 示例
folder = "C:/Users/lang/Desktop"
filename = "data.txt"
full_path = os.path.join(folder, filename)
print(full_path)
🧾 输出
C:\Users\lang\Desktop\data.txt
1️⃣3️⃣ 拆分路径
os.path.split(path)
📘 示例
print(os.path.split("C:/Users/lang/Desktop/data.txt"))
🧾 输出
('C:/Users/lang/Desktop', 'data.txt')
1️⃣4️⃣ 获取文件大小
os.path.getsize(path)
📘 示例
print(os.path.getsize("data.txt"), "字节")
🧾 输出
1234 字节
1️⃣5️⃣ 遍历目录树(递归)
os.walk(top)
返回 (root, dirs, files)
元组,可用于递归访问文件夹。
📘 示例
for root, dirs, files in os.walk("."):print("当前路径:", root)print("子目录:", dirs)print("文件:", files)print("------------")
🧾 输出
当前路径: .
子目录: ['images', 'docs']
文件: ['main.py', 'README.md']
------------
当前路径: .\images
子目录: []
文件: ['logo.png', 'icon.jpg']
------------
三、综合实战案例
📘 任务:遍历指定文件夹,找出所有 .txt
文件,并打印它们的绝对路径与大小
import osdef find_txt_files(root_dir):for root, dirs, files in os.walk(root_dir):for f in files:if f.endswith(".txt"):file_path = os.path.join(root, f)size = os.path.getsize(file_path)print(f"{file_path} ({size} bytes)")find_txt_files(".")
🧾 输出示例
.\notes.txt (1345 bytes)
.\logs\2025_log.txt (5678 bytes)
四、总结表格
功能 | 方法 | 说明 |
---|---|---|
获取当前目录 | os.getcwd() | 获取路径 |
改变目录 | os.chdir(path) | 切换工作目录 |
创建目录 | os.mkdir() / os.makedirs() | 新建文件夹 |
删除目录 | os.rmdir() / os.removedirs() | 删除空目录 |
列出内容 | os.listdir() | 遍历文件夹 |
重命名 | os.rename() | 文件改名 |
删除文件 | os.remove() | 删除文件 |
判断存在 | os.path.exists() | 检查路径 |
判断类型 | os.path.isfile() / os.path.isdir() | 文件或目录 |
拼接路径 | os.path.join() | 合成路径 |
拆分路径 | os.path.split() | 分离目录与文件 |
获取绝对路径 | os.path.abspath() | 转换绝对路径 |
获取大小 | os.path.getsize() | 获取文件大小 |
遍历目录树 | os.walk() | 递归扫描 |
python学习专栏导航
(1)100天python从入门到拿捏《Python 3简介》
(2)100天python从入门到拿捏《python应用前景》
(3)100天python从入门到拿捏《数据类型》
(4)100天python从入门到拿捏《运算符》
(5)100天python从入门到拿捏《流程控制语句》
(6)100天python从入门到拿捏《推导式》
(7)100天python从入门到拿捏《迭代器和生成器》
(8)100天python从入门到拿捏《函数和匿名函数》
(9)100天python从入门到拿捏《装饰器》
(10)100天python从入门到拿捏《Python中的数据结构与自定义数据结构》
(11)100天python从入门到拿捏《模块》
(12)100天python从入门到拿捏《文件操作》