当前位置: 首页 > news >正文

【Python】os模块

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. 注意事项

  1. 跨平台兼容性:不同操作系统路径分隔符不同,建议始终使用 os.path.join() 拼接路径
  2. 权限问题:操作文件/目录时要注意程序是否有足够权限
  3. 异常处理:文件操作可能抛出异常,建议使用 try-except 处理
  4. 路径标准化:使用 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 模块经常与其他 模块如 shutilglob 等配合使用。

相关文章:

  • Soft Mask(软遮罩)技术
  • MySQL的information_schema在SQL注入中的关键作用与防御策略
  • 后端返回文件流,前端展示图片
  • AI视觉质检的落地困境与突破路径
  • 架构进阶:精读麦肯锡-_电力公司业务能力架构设计规划咨询项目【附全文阅读】
  • 雪兽云资产助力“星耀汇聚”提升业务效率
  • J2 WebScarab 安装指南详细步骤与配置方法
  • Python入门(二)
  • 【Python os模块完全指南】从基础到高效文件操作
  • PyQt5 实现自定义滑块,效果还不错
  • 【信息系统项目管理师】法律法规与标准规范——历年考题(2024年-2020年)
  • ts 工具类型
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】7.1 主流可视化工具对比(Tableau/Matplotlib/Python库)
  • LLM词编码机制:词映射
  • CTF-DAY9
  • Linux零基础快速入门课程笔记详解
  • Oracle 数据布局探秘:段与区块的内部机制
  • MCP 规范新版本特性全景解析与落地实践
  • 二叉查找树,平衡二叉树(AVL),b树,b+树,红黑树
  • 41.防静电的系列措施
  • 新城市志|上海再攻坚,营商环境没有最好只有更好
  • 中俄就应对美加征所谓“对等关税”等问题进行深入交流
  • 美英达成贸易协议,美股集体收涨
  • 泉州一家婚介机构广告牌越南新娘七天闪婚领证?市监部门介入
  • 抗战回望21︱《“良民”日记》:一个“良民”在沦陷区的见闻与感受
  • 太原一高中生指出博物馆多件藏品标识不当,馆方已邀请他和专家共同探讨