Python内置模块os:多种操作系统接口详解

deer332025-09-10技术文章27

引言

在Python编程中,os模块是一个非常重要的模块,它提供了多种操作系统接口,使得Python程序能够与操作系统进行交互。无论是文件操作、进程管理还是环境变量设置,os模块都提供了丰富的功能。

知识点概述

我们先了解几个相关概念:

  1. 操作系统接口:操作系统接口是操作系统提供的API,允许程序与操作系统进行交互。
  2. 文件操作:文件操作包括文件的创建、删除、读取、写入等。
  3. 进程管理:进程管理涉及进程的创建、终止、状态查询等。
  4. 环境变量:环境变量是操作系统中存储特定信息的一种机制,可以影响程序的行为。

os模块的基本功能

os模块提供了多种操作系统相关的功能,包括但不限于文件操作、进程管理、环境变量管理等。下面我们将详细介绍这些功能。

文件操作

文件和目录操作

os模块提供了多种文件和目录操作函数,如os.mkdir()os.rmdir()os.listdir()等。

示例:创建和删除目录

import os


# 创建目录
os.mkdir('new_directory')


# 删除目录
os.rmdir('new_directory')

文件操作

os模块还提供了文件操作函数,如os.remove()os.rename()等。

示例:删除和重命名文件

import os


# 删除文件
os.remove('example.txt')


# 重命名文件
os.rename('old_name.txt', 'new_name.txt')

进程管理

os模块提供了多种进程管理函数,如os.fork()os.spawnl()等。

示例:创建子进程

import os


# 创建子进程
pid = os.fork()


if pid == 0:
    print("This is the child process.")
else:
    print(f"Parent process with PID {os.getpid()} created child process with PID {pid}.")

环境变量

os模块提供了访问和修改环境变量的函数,如os.environos.getenv()等。

示例:获取和设置环境变量

import os


# 获取环境变量
home_dir = os.getenv('HOME')


# 设置环境变量
os.environ['MY_VARIABLE'] = 'my_value'

其他系统信息

os模块还提供了获取系统信息的函数,如os.cpu_count()os.getloadavg()等。

示例:获取CPU数量和系统负载

import os


# 获取CPU数量
cpu_count = os.cpu_count()


# 获取系统负载
load_avg = os.getloadavg()


print(f"CPU Count: {cpu_count}")
print(f"Load Average: {load_avg}")

知识点

文件和目录操作

os.mkdir(path, mode=0o777, *, dir_fd=None)

功能:创建一个目录。

参数

  • path:要创建的目录路径。
  • mode:目录的权限模式,默认为0o777
  • dir_fd:可选参数,指定目录描述符。

返回值:无。

注意事项:如果目录已存在,会抛出FileExistsError

os.listdir(path='.')

功能:返回指定目录中的文件和子目录列表。

参数

  • path:要列出的目录路径,默认为当前目录。

返回值:包含目录中文件和子目录名称的列表。

注意事项:不包括特殊条目...

进程管理

os.fork()

功能:创建一个子进程。

参数:无。

返回值:在子进程中返回0,在父进程中返回子进程的PID。

注意事项:在Windows上不可用。

os.spawnl(mode, path, ...)

功能:在新的进程中执行程序。

参数

  • mode:指定进程的启动方式,如os.P_WAITos.P_NOWAIT等。
  • path:要执行的程序路径。
  • ...:传递给程序的参数。

返回值:根据mode的不同,返回进程的PID或退出状态。

注意事项spawn*系列函数在功能上不如subprocess模块强大。

环境变量

os.environ

功能:获取和修改环境变量。

参数:无。

返回值:一个包含环境变量的字典。

注意事项:直接修改os.environ会影响全局环境变量。

os.getenv(key, default=None)

功能:获取指定环境变量的值。

参数

  • key:环境变量的名称。
  • default:如果环境变量不存在,返回的默认值。

返回值:环境变量的值或默认值。

注意事项:如果环境变量不存在且未提供默认值,返回None

其他系统信息

os.cpu_count()

功能:获取系统中的CPU数量。

参数:无。

返回值:CPU数量,如果无法确定则返回None

注意事项:在某些系统上可能无法准确获取CPU数量。

os.getloadavg()

功能:获取系统负载平均值。

参数:无。

返回值:一个包含最近1、5和15分钟内的平均负载的元组。

注意事项:在某些系统上可能无法获取负载平均值。

知识点应用示例

示例1:文件和目录操作示例

import os


# 创建目录
os.makedirs('new_directory/sub_directory')


# 列出目录内容
files = os.listdir('.')
print(f"Files in current directory: {files}")


# 删除目录
os.rmdir('new_directory/sub_directory')
os.rmdir('new_directory')

示例2:进程管理示例

import os


# 创建子进程
pid = os.fork()


if pid == 0:
    print("This is the child process.")
    os._exit(0)
else:
    print(f"Parent process with PID {os.getpid()} created child process with PID {pid}.")
    os.waitpid(pid, 0)

示例3:环境变量操作示例

import os


# 获取环境变量
home_dir = os.getenv('HOME')
print(f"Home directory: {home_dir}")


# 设置环境变量
os.environ['MY_VARIABLE'] = 'my_value'
print(f"MY_VARIABLE: {os.environ.get('MY_VARIABLE')}")

知识点扩展

使用os.path模块

os.path模块提供了更多与路径操作相关的函数,如os.path.join()os.path.exists()等。

示例:路径操作

import os


# 连接路径
full_path = os.path.join('home', 'user', 'documents')
print(f"Full path: {full_path}")


# 检查路径是否存在
path_exists = os.path.exists(full_path)
print(f"Path exists: {path_exists}")

使用subprocess模块

subprocess模块提供了更强大的进程管理功能,可以替代os.spawn*系列函数。

示例:使用subprocess模块

import subprocess


# 执行命令
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)

学习总结

os模块是Python中一个非常强大且常用的模块,提供了丰富的操作系统接口功能。通过学习os模块,我们可以更好地理解和控制程序与操作系统的交互。

附录:知识导图

#编程# #学习# #python# #在头条记录我的2025#