小甲鱼Python学习笔记

课程主题

  • 讲师:小甲鱼
  • 内容:Python文件相关核心模块(OS + os.path)
  • 前置概念:模块是.py后缀的代码文件,需import导入后使用功能

模块基础认知

  • 定义:包含函数、变量的.py文件,可被其他程序导入复用
  • 示例:使用random模块需先import random,再调用random.randint()
  • 核心作用:代码复用、功能封装,避免重复编写逻辑

OS模块:跨平台文件系统操作

  • 模块定位:Python跨平台访问文件系统的核心模块,自动适配Windows/Linux/macOS
  • 核心优势:无需针对不同系统修改代码,保证Python的跨平台特性
  • 常用函数 & 功能
    1. os.getcwd() → 返回当前工作目录路径
    2. os.chdir(path) → 切换工作目录(类似CD命令),参数需为字符串
    3. os.listdir(path) → 列举指定目录下的所有文件/文件夹名
    4. os.mkdir(dirname) → 创建单层目录,父目录不存在则报错
    5. os.makedirs(dirname) → 递归创建多层目录,目录已存在则抛异常
    6. os.remove(filename) → 删除指定文件
    7. os.rmdir(dirname) → 删除空目录,目录非空则报错
    8. os.removedirs(dirname) → 递归删除空目录,遇非空目录停止
    9. os.rename(oldname, newname) → 重命名文件/目录
    10. os.system(command) → 运行系统Shell命令(如os.system("calc")打开计算器)
  • 常用常量(跨平台兼容)
    1. os.curdir → 指代当前目录(Windows/Linux均适用,等价于.
    2. os.pardir → 指代上一级目录(等价于..
    3. os.sep → 操作系统的路径分隔符(Windows是\,Linux是/
    4. os.linesep → 操作系统的换行符(Windows是\r\n,Linux是\n
    5. os.name → 指代当前系统类型(nt=Windows,posix=Linux/macOS)

os.path模块:路径处理专用工具

  • 模块定位:独立于OS模块,专门处理路径字符串,需import os.path
  • 常用函数 & 功能
    1. os.path.basename(path) → 去掉路径,返回文件名(如E:\a\b.txtb.txt
    2. os.path.dirname(path) → 去掉文件名,返回路径(如E:\a\b.txtE:\a
    3. os.path.join(path1, path2...) → 拼接多个路径成完整路径,自动补充分隔符
    4. os.path.split(path) → 分割路径为(路径, 文件名)元组,最后部分视为文件名
    5. os.path.splitext(path) → 分割文件名和扩展名(如b.txt('b', '.txt')
    6. os.path.getsize(path) → 返回文件大小,单位字节
    7. os.path.getatime(path) → 返回文件最后访问时间(浮点型秒数)
    8. os.path.getctime(path) → 返回文件创建时间(浮点型秒数)
    9. os.path.getmtime(path) → 返回文件最后修改时间(浮点型秒数)
    10. os.path.exists(path) → 判断路径/文件是否存在,返回布尔值
    11. os.path.isabs(path) → 判断是否为绝对路径(带盘符/根目录)
    12. os.path.isdir(path) → 判断路径是否为目录
    13. os.path.isfile(path) → 判断路径是否为文件
    14. os.path.islink(path) → 判断是否为符号链接/快捷方式
    15. os.path.ismount(path) → 判断是否为系统挂载点(如Windows盘符C:\
    16. os.path.samefile(path1, path2) → 判断两个路径是否指向同一个文件

时间戳转换小技巧

  • os.path获取的时间是浮点型秒数,需结合time模块转换为可读时间
  • 示例:
    • time.gmtime(时间戳) → 转换为格林尼治标准时间
    • time.localtime(时间戳) → 转换为本地时区时间(如北京时间)

绝对路径 vs 相对路径

  • 绝对路径:带完整路径标识(如E:\a\b\test.txt
  • 相对路径:基于当前目录的路径(如./b/test.txt../test.txt
  • 核心区别:绝对路径无需依赖当前工作目录,相对路径需结合当前目录解析