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

相关推荐
星空椰4 小时前
Python 面向对象高级:继承与类定义详解
开发语言·python
凯瑟琳.奥古斯特5 小时前
高阶子查询题目精炼
开发语言·数据库·python·职场和发展·数据库开发
风之所往_5 小时前
Python 3.4 新特性全面总结
python
太阳上的雨天6 小时前
任何格式的文件转Markdown
python·ai
yaoxin5211236 小时前
419. 现代 Java IO 最佳实践 - 写入文本文件
java·windows·python
weixin_468466856 小时前
纳米 AI 搜索新手极速上手指南
人工智能·python·深度学习·搜索引擎·ai·语言模型·自然语言处理
凯瑟琳.奥古斯特6 小时前
数据库原理选择题精选
数据库·python·职场和发展
彦为君7 小时前
JavaSE-07-异常机制
java·开发语言·后端·python·spring
适应规律7 小时前
【无标题】
人工智能·python·算法