os
模块用于文件和目录操作
文章目录
- [`os` 模块用于文件和目录操作](#
os
模块用于文件和目录操作) - [一、`os` 模块简介](#一、
os
模块简介) - 二、常用文件与目录操作方法
-
- [1️⃣ 获取当前工作目录](#1️⃣ 获取当前工作目录)
- [2️⃣ 改变当前工作目录](#2️⃣ 改变当前工作目录)
- [3️⃣ 创建目录](#3️⃣ 创建目录)
- [4️⃣ 删除目录](#4️⃣ 删除目录)
- [5️⃣ 列出目录内容](#5️⃣ 列出目录内容)
- [6️⃣ 重命名文件或目录](#6️⃣ 重命名文件或目录)
- [7️⃣ 删除文件](#7️⃣ 删除文件)
- [8️⃣ 判断文件或目录是否存在](#8️⃣ 判断文件或目录是否存在)
- [9️⃣ 判断路径类型](#9️⃣ 判断路径类型)
- [🔟 获取文件的绝对路径](#🔟 获取文件的绝对路径)
- [1️⃣1️⃣ 获取文件路径的目录与文件名](#1️⃣1️⃣ 获取文件路径的目录与文件名)
- [1️⃣2️⃣ 拼接路径](#1️⃣2️⃣ 拼接路径)
- [1️⃣3️⃣ 拆分路径](#1️⃣3️⃣ 拆分路径)
- [1️⃣4️⃣ 获取文件大小](#1️⃣4️⃣ 获取文件大小)
- [1️⃣5️⃣ 遍历目录树(递归)](#1️⃣5️⃣ 遍历目录树(递归))
- 三、综合实战案例
- 四、总结表格
一、os
模块简介
os
模块是 Python 内置的一个标准库,用于与操作系统进行交互。
它可以执行
- 文件与目录的创建、删除、重命名;
- 获取文件属性;
- 遍历目录;
- 获取系统信息(如路径、环境变量);
- 以及执行系统命令。
使用前需先导入:
py
import os
二、常用文件与目录操作方法
1️⃣ 获取当前工作目录
py
os.getcwd()
📘 示例
py
import os
print("当前工作目录:", os.getcwd())
🧾 输出示例
当前工作目录: C:\Users\oyaZXL\Desktop\
2️⃣ 改变当前工作目录
py
os.chdir(path)
📘 示例
py
os.chdir("C:/Users/lang/Documents")
print("切换后目录:", os.getcwd())
🧾 输出
切换后目录: C:\Users\lang\Documents
3️⃣ 创建目录
py
os.mkdir(path)
os.makedirs(path)
mkdir()
:只能创建一级目录;makedirs()
:可递归创建多级目录。
📘 示例
os.mkdir("test_folder")
os.makedirs("a/b/c") # 递归创建多级目录
4️⃣ 删除目录
py
os.rmdir(path)
os.removedirs(path)
rmdir()
:删除空目录;removedirs()
:递归删除多级空目录。
📘 示例
py
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️⃣ 重命名文件或目录
py
os.rename(old_name, new_name)
📘 示例
py
os.rename("data.txt", "data_backup.txt")
7️⃣ 删除文件
py
os.remove(path)
📘 示例
os.remove("data_backup.txt")
8️⃣ 判断文件或目录是否存在
os.path.exists(path)
📘 示例
py
if os.path.exists("example.txt"):
print("文件存在")
else:
print("文件不存在")
9️⃣ 判断路径类型
os.path.isfile(path)
os.path.isdir(path)
📘 示例
py
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)
📘 示例
py
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️⃣ 拼接路径
py
os.path.join(path1, path2, ...)
📘 示例
py
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)
📘 示例
py
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)
元组,可用于递归访问文件夹。
📘 示例
py
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
文件,并打印它们的绝对路径与大小
py
import os
def 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从入门到拿捏《文件操作》