(13)100天python从入门到拿捏《目录操作》

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从入门到拿捏《文件操作》

相关推荐
会员源码网5 小时前
Python中生成器函数与普通函数的区别
python
Java水解5 小时前
Python开发从入门到精通:Web框架Django实战
后端·python
曲幽7 小时前
FastAPI + PostgreSQL 实战:给应用装上“缓存”和“日志”翅膀
redis·python·elasticsearch·postgresql·logging·fastapi·web·es·fastapi-cache
Lupino10 小时前
别再只聊 AI 写代码了:技术负责人要把“变更治理”提到第一优先级
python·docker·容器
Flittly11 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(6)Context Compact (上下文压缩)
python·agent
程序设计实验室12 小时前
在 Windows 11 上使用 Hyper-V 虚拟机准备安装OpenClaw
windows
曲幽1 天前
FastAPI + PostgreSQL 实战:从入门到不踩坑,一次讲透
python·sql·postgresql·fastapi·web·postgres·db·asyncpg
用户8356290780511 天前
使用 C# 在 Excel 中创建数据透视表
后端·python
码路飞1 天前
FastMCP 实战:一个 .py 文件,给 Claude Code 装上 3 个超实用工具
python·ai编程·mcp
dev派1 天前
AI Agent 系统中的常用 Workflow 模式(2) Evaluator-Optimizer模式
python·langchain