课程主题
- 讲师:小甲鱼
- 内容:Python文件相关核心模块(OS + os.path)
- 前置概念:模块是
.py后缀的代码文件,需import导入后使用功能
模块基础认知
- 定义:包含函数、变量的
.py文件,可被其他程序导入复用 - 示例:使用
random模块需先import random,再调用random.randint() - 核心作用:代码复用、功能封装,避免重复编写逻辑
OS模块:跨平台文件系统操作
- 模块定位:Python跨平台访问文件系统的核心模块,自动适配Windows/Linux/macOS
- 核心优势:无需针对不同系统修改代码,保证Python的跨平台特性
- 常用函数 & 功能
os.getcwd()→ 返回当前工作目录路径os.chdir(path)→ 切换工作目录(类似CD命令),参数需为字符串os.listdir(path)→ 列举指定目录下的所有文件/文件夹名os.mkdir(dirname)→ 创建单层目录,父目录不存在则报错os.makedirs(dirname)→ 递归创建多层目录,目录已存在则抛异常os.remove(filename)→ 删除指定文件os.rmdir(dirname)→ 删除空目录,目录非空则报错os.removedirs(dirname)→ 递归删除空目录,遇非空目录停止os.rename(oldname, newname)→ 重命名文件/目录os.system(command)→ 运行系统Shell命令(如os.system("calc")打开计算器)
- 常用常量(跨平台兼容)
os.curdir→ 指代当前目录(Windows/Linux均适用,等价于.)os.pardir→ 指代上一级目录(等价于..)os.sep→ 操作系统的路径分隔符(Windows是\,Linux是/)os.linesep→ 操作系统的换行符(Windows是\r\n,Linux是\n)os.name→ 指代当前系统类型(nt=Windows,posix=Linux/macOS)
os.path模块:路径处理专用工具
- 模块定位:独立于OS模块,专门处理路径字符串,需
import os.path - 常用函数 & 功能
os.path.basename(path)→ 去掉路径,返回文件名(如E:\a\b.txt→b.txt)os.path.dirname(path)→ 去掉文件名,返回路径(如E:\a\b.txt→E:\a)os.path.join(path1, path2...)→ 拼接多个路径成完整路径,自动补充分隔符os.path.split(path)→ 分割路径为(路径, 文件名)元组,最后部分视为文件名os.path.splitext(path)→ 分割文件名和扩展名(如b.txt→('b', '.txt'))os.path.getsize(path)→ 返回文件大小,单位字节os.path.getatime(path)→ 返回文件最后访问时间(浮点型秒数)os.path.getctime(path)→ 返回文件创建时间(浮点型秒数)os.path.getmtime(path)→ 返回文件最后修改时间(浮点型秒数)os.path.exists(path)→ 判断路径/文件是否存在,返回布尔值os.path.isabs(path)→ 判断是否为绝对路径(带盘符/根目录)os.path.isdir(path)→ 判断路径是否为目录os.path.isfile(path)→ 判断路径是否为文件os.path.islink(path)→ 判断是否为符号链接/快捷方式os.path.ismount(path)→ 判断是否为系统挂载点(如Windows盘符C:\)os.path.samefile(path1, path2)→ 判断两个路径是否指向同一个文件
时间戳转换小技巧
os.path获取的时间是浮点型秒数,需结合time模块转换为可读时间- 示例:
time.gmtime(时间戳)→ 转换为格林尼治标准时间time.localtime(时间戳)→ 转换为本地时区时间(如北京时间)
绝对路径 vs 相对路径
- 绝对路径:带完整路径标识(如
E:\a\b\test.txt) - 相对路径:基于当前目录的路径(如
./b/test.txt、../test.txt) - 核心区别:绝对路径无需依赖当前工作目录,相对路径需结合当前目录解析