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

相关推荐
2601_962071575 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境6 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
Java后端的Ai之路6 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师6 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师6 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
Zootopia6266 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
Y3815326627 小时前
搜索 API 延迟优化:并发数、超时与超时的真实代价
python·搜索引擎
wangqiaowq7 小时前
PII 脱敏指的是:把个人身份信息(PII)中能识别到具体个人的敏感部分,用替换、遮蔽、变形等方式处理掉,使得数据在保留可用性的同时,不再直接暴露个人身份。
python
YCOSA20257 小时前
Windows11_InsiderPreview_EnterpriseVL_x64_zh-cn_29680_1000.iso 官方直链
windows
风早爽太7 小时前
Python 学习笔记:SQLModel 使用外键关联查询数据
python·fastapi·sqlmodel