os
模块是 Python 标准库中用于与操作系统交互的核心模块,提供了许多操作文件和目
录的函数。
1. 基本介绍
os
模块提供了以下主要功能:
- 文件和目录操作
- 路径操作
- 进程管理
- 环境变量访问
import os
2. 常用功能分类
2.1 文件和目录操作
函数/方法 | 描述 |
---|---|
os.getcwd() | 获取当前工作目录 |
os.chdir(path) | 改变当前工作目录 |
os.listdir(path='.') | 列出指定目录下的文件和子目录 |
os.mkdir(path) | 创建单个目录 |
os.makedirs(path) | 递归创建多级目录 |
os.remove(path) | 删除文件 |
os.rmdir(path) | 删除空目录 |
os.removedirs(path) | 递归删除空目录 |
os.rename(src, dst) | 重命名文件或目录 |
2.2 路径操作
函数/方法 | 描述 |
---|---|
os.path.abspath(path) | 返回绝对路径 |
os.path.basename(path) | 返回路径中的文件名部分 |
os.path.dirname(path) | 返回路径中的目录部分 |
os.path.exists(path) | 检查路径是否存在 |
os.path.isfile(path) | 检查是否是文件 |
os.path.isdir(path) | 检查是否是目录 |
os.path.join(path1, path2, ...) | 拼接路径 |
os.path.split(path) | 分割路径为目录和文件名 |
os.path.splitext(path) | 分割路径为文件名和扩展名 |
2.3 系统信息
函数/方法 | 描述 |
---|---|
os.name | 操作系统名称 (‘posix’, ‘nt’, ‘java’) |
os.environ | 系统环境变量字典 |
os.getenv(key) | 获取指定环境变量值 |
os.cpu_count() | 返回CPU数量 |
os.urandom(n) | 生成n字节的随机字节 |
3. 实用示例
3.1 遍历目录
# 列出当前目录下所有.py文件
for filename in os.listdir('.'):if filename.endswith('.py'):print(filename)
3.2 创建目录结构
# 创建多级目录
if not os.path.exists('project/data'):os.makedirs('project/data')
3.3 路径操作
# 获取当前脚本所在目录
script_dir = os.path.dirname(os.path.abspath(__file__))
print(f"脚本所在目录: {script_dir}")# 构建新路径
data_path = os.path.join(script_dir, 'data', 'input.txt')
print(f"完整路径: {data_path}")
3.4 文件信息
# 检查文件是否存在并获取大小
if os.path.isfile('example.txt'):size = os.path.getsize('example.txt')print(f"文件大小: {size} 字节")
4. 注意事项
- 跨平台兼容性:不同操作系统路径分隔符不同,建议始终使用
os.path.join()
拼接路径 - 权限问题:操作文件/目录时要注意程序是否有足够权限
- 异常处理:文件操作可能抛出异常,建议使用
try-except
处理 - 路径标准化:使用
os.path.normpath()
可以规范化路径
5. 进阶用法
5.1 递归遍历目录
for root, dirs, files in os.walk('.'):print(f"当前目录: {root}")print(f"子目录: {dirs}")print(f"文件: {files}")
5.2 执行系统命令
# 执行系统命令并获取输出
output = os.popen('ls -l').read()
print(output)
5.3 临时文件操作
import tempfile# 创建临时文件
temp_file = tempfile.mkstemp()
print(f"临时文件: {temp_file}")
希望这份指南能帮助你掌握 os
模块的基本用法!在实际开发中,os
模块经常与其他 模块如 shutil
、glob
等配合使用。