当前位置: 首页 > news >正文

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

os 模块用于文件和目录操作

文章目录

  • `os` 模块用于文件和目录操作
  • 一、`os` 模块简介
  • 二、常用文件与目录操作方法
    • 1️⃣ 获取当前工作目录
    • 2️⃣ 改变当前工作目录
    • 3️⃣ 创建目录
    • 4️⃣ 删除目录
    • 5️⃣ 列出目录内容
    • 6️⃣ 重命名文件或目录
    • 7️⃣ 删除文件
    • 8️⃣ 判断文件或目录是否存在
    • 9️⃣ 判断路径类型
    • 🔟 获取文件的绝对路径
    • 1️⃣1️⃣ 获取文件路径的目录与文件名
    • 1️⃣2️⃣ 拼接路径
    • 1️⃣3️⃣ 拆分路径
    • 1️⃣4️⃣ 获取文件大小
    • 1️⃣5️⃣ 遍历目录树(递归)
  • 三、综合实战案例
  • 四、总结表格

一、os 模块简介

os 模块是 Python 内置的一个标准库,用于与操作系统进行交互。
它可以执行

  • 文件与目录的创建、删除、重命名;
  • 获取文件属性;
  • 遍历目录;
  • 获取系统信息(如路径、环境变量);
  • 以及执行系统命令。

使用前需先导入:

import os

二、常用文件与目录操作方法

1️⃣ 获取当前工作目录

os.getcwd()

📘 示例

import os
print("当前工作目录:", os.getcwd())

🧾 输出示例

当前工作目录: C:\Users\oyaZXL\Desktop\

2️⃣ 改变当前工作目录

os.chdir(path)

📘 示例

os.chdir("C:/Users/lang/Documents")
print("切换后目录:", os.getcwd())

🧾 输出

切换后目录: C:\Users\lang\Documents

3️⃣ 创建目录

os.mkdir(path)
os.makedirs(path)
  • mkdir():只能创建一级目录;
  • makedirs():可递归创建多级目录。

📘 示例

os.mkdir("test_folder")
os.makedirs("a/b/c")  # 递归创建多级目录

4️⃣ 删除目录

os.rmdir(path)
os.removedirs(path)
  • rmdir():删除空目录;
  • removedirs():递归删除多级空目录。

📘 示例

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️⃣ 重命名文件或目录

os.rename(old_name, new_name)

📘 示例

os.rename("data.txt", "data_backup.txt")

7️⃣ 删除文件

os.remove(path)

📘 示例

os.remove("data_backup.txt")

8️⃣ 判断文件或目录是否存在

os.path.exists(path)

📘 示例

if os.path.exists("example.txt"):print("文件存在")
else:print("文件不存在")

9️⃣ 判断路径类型

os.path.isfile(path)
os.path.isdir(path)

📘 示例

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)

📘 示例

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️⃣ 拼接路径

os.path.join(path1, path2, ...)

📘 示例

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)

📘 示例

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) 元组,可用于递归访问文件夹。

📘 示例

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 文件,并打印它们的绝对路径与大小

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

http://www.dtcms.com/a/470432.html

相关文章:

  • SRC漏洞挖掘
  • Kettle作业并行设置及多前置任务同时运行完成才执行后续节点的方案
  • 如何给网站做301重定向网站集约化建设通知
  • PS基本教学(一)——认识Photoshop软件
  • Java中数据驱动测试的多接口关联处理
  • 用 TypeScript进行Hardhat测试
  • 淘宝网站建设那么便宜营销型网站开发 语言选择
  • ps做网站尺寸多少像素深圳网站建设团队
  • 做私房蛋糕在哪些网站写东西wordpress 文章 pin
  • 【ProtoBuf】快速上手
  • DAC1282寄存器介绍以及模式操作介绍
  • winlogon!SignalManagerResetSignal函数分析之循环的次数和信号管理数组的->20h有关
  • 从fat看文件系统的加载流程走读
  • patchmatch翻译总结
  • 绍兴免费自助建站wordpress 屏蔽ip
  • TCP 网络编程笔记:TcpListener、TcpClient 与核心用法
  • 群晖的网站开发搜索百度一下
  • 【词根】2025-10-11词根学习
  • 【MFC】项目源码过大,不影响项目设置的打包办法
  • 做聚美优品网站得多少钱wordpress 知更鸟 公告
  • 网站的中英文翻译是怎么做的公司手机网站建设价格
  • 基层建设期刊在哪个网站被收录想做棋牌网站怎么做
  • 商丘网站建设广告ui培训哪里好
  • 微博上如何做网站推广媒介
  • MongoDB 读写分离中 实现强制走主读注解
  • Java-146 深入浅出 MongoDB 数据插入、批量写入、BSON 格式与逻辑查询and or not操作指南
  • EasyExcel实现普通导入导出以及按模板导出excel文件
  • ubuntu 24.10安装MongoDB
  • 开源新经济:Web4.0时代的社区激励模型
  • NXP iMX8MM ARM 平台 Weston RDP 远程桌面部署测试