python--标准库os
1️⃣ 工作目录操作
| 功能 | 方法 | 说明 |
|---|---|---|
| 获取当前工作目录 | os.getcwd() | 返回当前工作目录路径 |
| 切换工作目录 | os.chdir(path) | 切换到指定目录 |
示例代码:
import os# 获取当前工作目录
cwd = os.getcwd()
print("当前目录:", cwd)# 切换目录
os.chdir("/tmp")
print("切换后的目录:", os.getcwd())
2️⃣ 文件与目录列表
| 功能 | 方法 | 说明 |
|---|---|---|
| 列出目录下所有文件和文件夹 | os.listdir(path) | 返回目录内容列表 |
示例代码:
import os# 列出当前目录内容
print("当前目录文件列表:", os.listdir("."))# 列出指定目录内容
print("根目录文件列表:", os.listdir("/"))
3️⃣ 创建与删除目录
| 功能 | 方法 | 说明 |
|---|---|---|
| 创建单个目录 | os.mkdir(path) | 目录不存在则创建 |
| 创建多级目录 | os.makedirs(path, exist_ok=True) | 创建多级目录,已存在不会报错 |
| 删除空目录 | os.rmdir(path) | 删除空目录 |
| 删除非空目录 | shutil.rmtree(path) | 删除整个目录及内容 |
示例代码:
import os
import shutil# 创建目录
os.mkdir("folder1")
os.makedirs("folder2/subfolder", exist_ok=True)# 删除目录
os.rmdir("folder1")
shutil.rmtree("folder2")
4️⃣ 路径操作
| 功能 | 方法 | 说明 |
|---|---|---|
| 拼接路径 | os.path.join(a, b) | 跨平台拼接路径 |
| 判断路径是否存在 | os.path.exists(path) | 文件或目录是否存在 |
| 判断是否为文件 | os.path.isfile(path) | True/False |
| 判断是否为目录 | os.path.isdir(path) | True/False |
| 获取文件名 | os.path.basename(path) | 返回最后一级文件名 |
| 获取目录名 | os.path.dirname(path) | 返回目录部分 |
| 分离文件名与扩展名 | os.path.splitext(path) | 返回 (文件名, 后缀) |
示例代码:
import ospath = "folder/file.txt"# 拼接路径
full_path = os.path.join("folder", "file.txt")
print("拼接路径:", full_path)# 判断路径
print("存在吗:", os.path.exists(full_path))
print("是文件吗:", os.path.isfile(full_path))
print("是目录吗:", os.path.isdir(full_path))# 文件名与目录
print("文件名:", os.path.basename(full_path))
print("目录名:", os.path.dirname(full_path))# 分离扩展名
name, ext = os.path.splitext("data.csv")
print("文件名:", name, "扩展名:", ext)
5️⃣ 文件操作
| 功能 | 方法 | 说明 |
|---|---|---|
| 重命名文件/目录 | os.rename(src, dst) | 修改文件或目录名 |
| 删除文件 | os.remove(path) | 删除文件 |
示例代码:
import os# 创建示例文件
with open("test.txt", "w") as f:f.write("hello")# 重命名
os.rename("test.txt", "test2.txt")# 删除
os.remove("test2.txt")
6️⃣ 遍历目录
| 功能 | 方法 | 说明 |
|---|---|---|
| 遍历目录及子目录 | os.walk(path) | 返回 (root, dirs, files) 三元组 |
示例代码:
import osos.makedirs("demo/sub", exist_ok=True)
with open("demo/file1.txt", "w") as f:f.write("file1")
with open("demo/sub/file2.txt", "w") as f:f.write("file2")for root, dirs, files in os.walk("demo"):print("当前目录:", root)print("子目录:", dirs)print("文件:", files)
7️⃣ 系统信息
| 功能 | 方法/属性 | 说明 |
|---|---|---|
| 操作系统类型 | os.name | posix (Linux/mac) 或 nt (Windows) |
| 系统环境变量 | os.environ | 返回环境变量字典 |
| CPU 核心数 | os.cpu_count() | 返回 CPU 核心数量 |
示例代码:
import osprint("操作系统类型:", os.name)
print("CPU核心数:", os.cpu_count())
print("系统环境变量示例:", os.environ.get("PATH"))
