os 模块是 Python 标准库中用于访问操作系统功能的接口。它提供了一系列函数,可用于文件系统操作、路径管理、环境变量访问、进程控制等,是编写跨平台脚本的重要工具。
常见应用场景:
(1)获取或修改当前工作目录。
(2)文件和目录的创建、重命名、删除。
(3)遍历目录结构,获取文件状态信息。
(4)获取或设置环境变量。
(5)执行系统命令。若需执行命令更灵活推荐 subprocess。
(6)获取系统资源信息(如 CPU 核心数)、控制进程退出等。
◆ ◆ ◆
核心概念
1、os 模块封装了底层系统调用,适合跨平台文件系统操作。
2、它通常配合 子模块完成路径拼接与判断。
3、由于 os 提供的是面向过程的 API,Python 3.4 起推荐的新风格为面向对象的 pathlib,但 os 在实际工程中仍然广泛使用。
4、操作系统级的所有行为(路径、权限、进程、环境)大多能通过 os 实现。
◆ ◆ ◆
应用举例
例 1:获取当前工作目录
import os
print("当前目录是:", os.getcwd())
例 2:创建与删除目录
import os
os.mkdir("my_folder")
os.rmdir("my_folder") # 注意:只能删除空目录
例 3:列出目录内容
import os
for name in os.listdir("."):
print(name)
例 4:执行系统命令
import os
os.system("echo Hello from mediaTEA")
例 5:递归遍历目录
import os
for dirpath, dirnames, filenames in os.walk("."):
print("目录:", dirpath)
print("子目录:", dirnames)
print("文件:", filenames)
例 6:获取 CPU 核心数
import os
print("CPU 核心数:", os.cpu_count())
例 7:获取当前进程 ID 并退出进程
import os
print("当前进程 PID:", os.getpid())
os._exit(0) # 强制退出进程(不会执行 finally)
◆ ◆ ◆
常用函数速览
os._exit(code)
强制退出当前进程,不进行异常处理或清理。
参数:code 为整数,退出码(0 表示正常退出)
返回:None
说明:常用于子进程内部终止。
os.access(path, mode)
判断当前用户是否对路径具有指定的权限。
参数:
path:路径(字符串)
mode:权限常量之一,如 os.R_OK, os.W_OK, os.X_OK, os.F_OK
返回:布尔值,True 表示有权限
示例:
os.access('file.txt', os.W_OK) 判断是否可写。
os.chdir(path)
更改当前工作目录。
参数:path 为目标路径字符串
返回:None
os.chmod(path, mode)
修改文件或目录的权限。
参数:
path:路径
mode:整数形式权限值,如 0o755
返回:None
说明:仅限类 Unix 系统;需具备权限。
os.chown(path, uid, gid)
更改文件或目录的所有者与所属组(仅类 Unix)。
参数:
path:路径字符串
uid:用户 ID
gid:组 ID
返回:None
说明:通常需 root 权限。
os.cpu_count()
获取系统的逻辑 CPU 核心数。
参数:无
返回:整数或 None(失败时)
os.environ
环境变量映射对象。可作为字典访问或修改变量。
用法:os.environ['PATH'], os.environ.get('HOME')
返回:环境变量字典
os.execvp(file, args)
用新程序替换当前进程(执行系统命令)。
参数:
file:命令或可执行文件名
args:参数列表(含命令本身)
返回:无(调用成功后不会返回)
说明:属于 exec* 系列的一种,适合查找命令路径。
os.getcwd()
获取当前工作目录路径。
参数:无
返回:字符串。
os.getgid()
获取当前进程的组 ID(仅类 Unix)。
参数:无
返回:整数 GID
os.getlogin()
获取当前登录用户名(终端会话用户)。
参数:无
返回:字符串
说明:某些平台或环境中可能失败。
os.getpid()
获取当前进程 ID。
参数:无
返回:整数 PID
os.getppid()
获取当前进程的父进程 ID。
参数:无
返回:整数 PID
os.getuid()
获取当前进程的用户 ID(仅类 Unix)。
参数:无
返回:整数 UID
os.listdir(path=".")
列出指定目录下的所有文件和文件夹名称。
参数:path 字符串,默认为当前目录
返回:列表
os.mkdir(path)
创建单层目录。
参数:path 路径字符串
返回:None
os.makedirs(path, exist_ok=False)
递归创建多层目录。
参数:
path:路径字符串
exist_ok:若为 True,存在也不报错
返回:None
os.name
返回当前操作系统平台类型。
返回:
'posix'(Unix/Linux/macOS)
'nt'(Windows)
'java'(Jython)
os.remove(path)
删除文件。
参数:path 为文件路径字符串
返回:None
异常:若路径非文件或不存在,将报错。
os.rename(src, dst)
重命名文件或目录。
参数:
src:原路径
dst:新路径
返回:None
os.rmdir(path)
删除空目录。
参数:path 为路径字符串
返回:None。
os.stat(path)
获取路径的详细信息(大小、修改时间、权限等)。
参数:path 字符串
返回:os.stat_result 对象
os.system(command)
在子终端中执行系统命令。
参数:command 字符串(如 "ls -l")
返回:命令的退出状态码(整数)
os.umask(mask)
设置当前进程的默认权限屏蔽码。
参数:mask 为八进制整数,如 0o022
返回:原先的 umask 值
os.uname()
返回当前操作系统的详细信息(仅类 Unix)。
参数:无
返回:命名元组,包含 sysname, nodename, release, version, machine
os.walk(top)
递归遍历目录树,生成三元组 (dirpath, dirnames, filenames)。
参数:top 起始目录路径
返回:生成器,用于遍历所有文件与子目录
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.