Python OS模块如何使用?

os模块提供跨平台的文件目录操作、路径处理、环境变量管理及系统命令执行功能,支持创建删除目录、拼接路径、获取环境变量等,示例包括检查创建日志目录、安全拼接配置路径、读取主目录和执行系统命令,使用时需注意路径和权限问题。

Python的os模块提供了与操作系统交互的多种方法,比如文件和目录操作、环境变量管理、路径处理等。它跨平台兼容,在Windows、macOS和Linux上都能使用,是日常开发中非常实用的工具。

文件与目录操作

os模块可以用来创建、删除、重命名和遍历目录,也可以判断路径是否存在或是否为文件/目录。

常用方法:
  • os.listdir(path):列出指定目录下的所有文件和子目录名称
  • os.mkdir(path):创建一个新目录
  • os.makedirs(path):递归创建多级目录
  • os.remove(path):删除一个文件
  • os.rmdir(path):删除空目录
  • os.removedirs(path):递归删除空目录
  • os.rename(src, dst):重命名文件或目录
  • os.path.exists(path):判断路径是否存在
  • os.path.isfile(path)os.path.isdir(path):判断是否为文件或目录

示例:检查并创建日志目录

代码示例:
import os

if not os.path.exists('logs'): os.mkdir('logs') print("日志目录已准备就绪")

路径处理(os.path)

路径拼接、拆分、获取绝对路径等操作都由 os.path 提供支持,避免手动拼接字符串导致跨平台问题。

常用方法:
  • os.path.join('dir', 'subdir', 'file.txt'):智能拼接路径,自动使用对应系统的分隔符
  • os.path.abspath(path):返回绝对路径
  • os.path.dirname(path):返回目录名
  • os.path.basename(path):返回文件名
  • os.path.splitext(path):分离文件名与扩展名

示例:安全地拼接配置文件路径

代码示例:
config_path = os.path.join('etc', 'app', 'config.ini')
print(config_path)  # 输出会根据系统不同为 etc/app/config.ini 或 etc\app\config.ini

环境变量与系统信息

os模块允许读取和修改环境变量,也提供当前进程相关的信息。

常用方法:
  • os.getenv('PATH'):获取环境变量值,推荐方式(不会因变量不存在报错)
  • os.environ['VAR']:直接访问环境变量,若不存在会抛出 KeyError
  • os.environ['NEW_VAR'] = 'value':设置环境变量
  • os.getpid():获取当前进程ID
  • os.name:返回操作系统类型(如 'nt' 表示 Windows,'posix' 表示 Linux/macOS)

示例:读取用户主目录

代码示例:
home = os.getenv('HOME') or os.getenv('USERPROFILE')
print(f"用户主目录: {home}")

执行系统命令

可以通过 os 模块运行外部命令,但更推荐使用 subprocess 模块。不过 os 仍提供简单方式。

注意方法:
  • os.system(command):执行一条系统命令,返回退出状态码

示例:查看当前目录下的文件(类Unix系统)

代码示例:
os.system('ls -l')  # Linux/macOS
# os.system('dir')  # Windows

基本上就这些。os模块功能强大,但处理文件时要小心路径错误和权限问题。合理使用能大幅提升脚本自动化能力。不复杂但容易忽略细节。