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

相关推荐
alvin_200515 分钟前
python之OpenGL应用(二)Hello Triangle
python·opengl
luoyayun36117 分钟前
实现Windows系统标题栏颜色跟随主题动态切换
windows·系统标题栏颜色·标题栏颜色
铁蛋AI编程实战24 分钟前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
jiang_changsheng36 分钟前
RTX 2080 Ti魔改22GB显卡的最优解ComfyUI教程
python·comfyui
模型时代1 小时前
Anthropic明确拒绝在Claude中加入广告功能
人工智能·microsoft
猫头虎1 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
0思必得01 小时前
[Web自动化] Selenium处理滚动条
前端·爬虫·python·selenium·自动化
沈浩(种子思维作者)1 小时前
系统要活起来就必须开放包容去中心化
人工智能·python·flask·量子计算
2301_790300962 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
m0_736919102 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python