Skip to main content
Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

OS 库

官方文档: https://docs.python.org/zh-cn/3.12/library/os.html

os 是 Python 进行 文件操作、路径操作、进程管理、环境变量 的核心库之一。

1. 路径相关(os.path)

import os

1.1 判断路径

功能 方法
是否存在 os.path.exists(path)
是否文件 os.path.isfile(path)
是否目录 os.path.isdir(path)

1.2 路径拼接

os.path.join(a, b, c)

避免手写 /,跨平台最佳方法。

1.3 获取目录名 / 文件名 / 扩展名

os.path.dirname(path)   # 目录
os.path.basename(path)  # 文件名
os.path.splitext(path)  # ('a.txt', '.txt')

1.4 绝对路径 / 规范化路径

os.path.abspath(path)
os.path.realpath(path)
os.path.normpath(path)

2. 文件操作

2.1 创建文件

open("file.txt", "w").close()

2.2 删除文件

os.remove("file.txt")

2.3 重命名 / 移动文件

os.rename("old.txt", "new.txt")

2.4 获取文件大小

os.path.getsize("file.txt")

3. 目录操作

3.1 创建目录

os.mkdir("folder")          # 单层目录
os.makedirs("a/b/c", exist_ok=True)  # 多层目录

3.2 删除目录

os.rmdir("folder")       # 必须空目录
os.removedirs("a/b/c")   # 逐级删除空目录

3.3 列出目录内容

os.listdir(".")

3.4 遍历目录(walk)

👑 文件扫描和递归遍历的最强方法

for root, dirs, files in os.walk("."):
    print(root, dirs, files)

4. 环境变量(ENV)

4.1 获取环境变量

os.getenv("PATH")

4.2 设置环境变量

os.environ["DEBUG"] = "1"

4.3 遍历所有环境变量

os.environ

5. 进程操作(process)

5.1 获取 PID

os.getpid()

5.2 获取父进程 PID

os.getppid()

5.3 启动系统命令

os.system("ls -l")

⚠️ 不推荐执行复杂命令,建议使用 subprocess。

5.4 退出程序

os._exit(0)

6. 工作目录(cwd)

6.1 获取当前目录

os.getcwd()

6.2 切换目录

os.chdir("/path/to/dir")

7. 权限和用户组(Unix)

7.1 更改权限(chmod)

os.chmod(path, 0o755)

7.2 更改所有者

os.chown(path, uid, gid)

7.3 文件 stat 信息

os.stat(path)

8. 随机数(安全随机)

os.urandom(16)

适合用于生成密钥、Token。

9. 常见组合示例

9.1 递归删除所有 .log 文件

import os

for root, dirs, files in os.walk("."):
    for name in files:
        if name.endswith(".log"):
            os.remove(os.path.join(root, name))

9.2 遍历目录并统计文件大小

total = 0

for root, dirs, files in os.walk("."):
    for f in files:
        total += os.path.getsize(os.path.join(root, f))

print("Total size:", total)

9.3 读取 ENV + 默认值

DEBUG = os.getenv("DEBUG", "false").lower() == "true"

9.4 自动创建目录(若不存在)

path = "data/output"
os.makedirs(path, exist_ok=True)

10. 总结(掌握这些就够用了)

分类 功能 常用方法
路径处理 拼接 / 解析路径 join basename dirname splitext
文件操作 创建 / 删除 / 重命名 remove rename
目录操作 创建 / 删除 / 遍历 mkdir makedirs listdir walk
环境变量 获取 / 设置 getenv environ
工作目录 获取 / 切换 getcwd chdir
进程操作 PID,执行命令 getpid system
权限 chmod / chown chmod chown