python os模块是什么

os模块是Python标准库中用于跨平台操作系统交互的核心模块,提供文件目录操作、进程管理、环境变量读取等系统级功能;其子模块os.path专用于路径字符串处理,而pathlib自Python 3.4起推荐用于更清晰的路径操作。

os模块是Python标准库中用于与操作系统交互的核心模块,它提供了一套跨平台的接口,让你能用Python代码执行文件和目录操作、管理进程、读取环境变量等底层系统任务,而不用直接调用不同操作系统的命令(比如Windows的cmd或Linux的shell)。

os模块能做什么

它覆盖了日常开发中最常遇到的系统级操作:

  • 创建、删除、重命名、移动文件和文件夹
  • 遍历目录结构(比如用 os.walk() 递归查所有子文件)
  • 获取当前工作路径(os.getcwd())、切换路径(os.chdir()
  • 检查路径是否存在、是否为文件/目录(os.path.exists()os.path.isfile() 等)
  • 拼接路径(os.path.join(),自动适配斜杠方向,避免硬写 "a/b""a\\b"
  • 读取和设置环境变量(os.environ.get("PATH")

os.path 和 os 的区别

os.pathos 模块里的一个子模块,专门处理“路径字符串”的逻辑,不涉及真实文件系统操作。比如:

  • os.path.basename("a/b/c.txt") → 返回 "c.txt"
  • os.path.dirname("/home/user/file.py") → 返回 "/home/user"
  • os.path.abspath("data.csv") → 返回完整绝对路径,如 "/Users/me/project/data.csv"

os.listdir()os.remove() 这类函数会真正去读磁盘、删文件,需要小心权限和路径有效性。

一个小提醒:推荐优先用 pathlib

Python 3.4+ 引入了 pathlib 模块,它用面向对象的方式替代了大量 os.path 的函数调用,代码更清晰。比如:

  • 旧写法:os.path.join(os.getcwd(), "logs", "app.log")
  • 新写法:Path.cwd() / "logs" / "app.log"

不过 os 模块仍在广泛使用,尤其在兼容老项目或需要底层控制(如 os.fork()os.kill())时不可替代。

基本上就这些 —— 它不是用来写算法的,但几乎每个Python脚本都可能用到它来“找文件”“建目录”或“看环境”。