一、简介
Python 的 os
模块提供了许多与操作系统交互的功能,包括:
- 获取系统信息
- 管理文件和目录路径
- 判断文件/目录是否存在
- 获取环境变量等
常用于自动化脚本、文件批量处理、路径拼接等场景。
二、基础使用示例
✅ 示例代码
import os
# 1. 获取平台信息(Windows 返回 'nt',Linux 返回 'posix')
print("当前操作系统:", os.name)
# 2. 读取环境变量(例如 PATH)
print("PATH 环境变量:")
for path in os.getenv("PATH").split(";"):
print(" ", path)
# 3. 路径操作:分割目录名和文件名
path_str = "E:\\pyCode\\pytest\\pythonProject1\\py02.py"
print("\n原始路径:", path_str)
print("分割目录和文件名:", os.path.split(path_str))
# 4. 显示目录名
print("目录名:", os.path.dirname(path_str))
# 5. 显示文件名
print("文件名:", os.path.basename(path_str))
# 6. 判断文件/目录是否存在
print("路径是否存在:", os.path.exists(path_str))
print("是否是文件:", os.path.isfile(path_str))
print("是否是目录:", os.path.isdir(path_str))
# 7. 获取当前路径下的绝对路径
print("当前 py02.py 的绝对路径:", os.path.abspath("py02.py"))
# 8. 判断是否为绝对路径
print("是否为绝对路径:", os.path.isabs("E:\\pyCode\\pytest\\pythonProject1\\py02.py"))
三、功能详解
1️⃣ 获取系统信息
print(os.name)
- 输出:
- Windows:
'nt'
- Linux:
'posix'
- macOS:
'posix'
- Windows:
可用于编写跨平台兼容代码。
2️⃣ 读取环境变量
os.getenv("PATH")
- 获取指定环境变量的值。
- 可以配合
split()
分割路径列表。
os.getenv("USERPROFILE") # 获取用户主目录
3️⃣ 路径操作函数
函数 | 说明 |
---|---|
os.path.split(path) |
将路径拆分为目录和文件名两部分 |
os.path.dirname(path) |
提取目录部分 |
os.path.basename(path) |
提取文件名部分 |
os.path.abspath(path) |
返回路径的绝对路径形式 |
os.path.isabs(path) |
判断路径是否为绝对路径 |
示例:
path = "E:\\pyCode\\pytest\\pythonProject1\\py02.py"
print(os.path.split(path)) # ('E:\\pyCode\\pytest\\pythonProject1', 'py02.py')
print(os.path.dirname(path)) # E:\pyCode\pytest\pythonProject1
print(os.path.basename(path)) # py02.py
4️⃣ 文件/目录存在性判断
函数 | 说明 |
---|---|
os.path.exists(path) |
判断路径是否存在 |
os.path.isfile(path) |
判断是否是文件 |
os.path.isdir(path) |
判断是否是目录 |
print(os.path.exists("data.txt")) # True or False
⚠️ 注意:路径不存在时,
isfile()
和isdir()
都返回False
。
5️⃣ 获取当前工作目录
print(os.getcwd()) # 获取当前工作目录
当前工作目录通常是你运行脚本的位置,而不是脚本所在的目录。
6️⃣ 创建/删除目录
os.mkdir("new_folder") # 创建单级目录
os.makedirs("a/b/c") # 创建多级目录
os.rmdir("new_folder") # 删除空目录
若目录不为空,
rmdir()
会报错。可以使用shutil.rmtree()
删除非空目录。
7️⃣ 重命名/移动文件或目录
os.rename("old_name.txt", "new_name.txt") # 重命名文件或目录
8️⃣ 删除文件
os.remove("temp.txt") # 删除文件