python os模块详解

Python的os模块提供了与操作系统交互的接口,包括文件和路径操作、环境变量获取等。os.name属性标识运行环境,如'posix'(Unix-like)、'nt'(Windows)。os.environ用于获取环境变量,例如用户的主目录路径。注意避免使用`from os import *`以防止覆盖内置函数。使用os模块可以编写跨平台代码,但调用特定系统功能会降低可移植性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、简介

os就是“operating system”的意思,os模块提供的就是各种Python程序与操作系统进行交互的接口。如果该模块相关功能出错,会抛出OSError异常或其子类异常。

注意,如果是读写文件的话,建议使用内置函数open();如果是路径相关的操作,建议使用os的子模块os.path;如果要逐行读取多个文件,建议使用fileinput模块;进行更高级的文件和路径操作要使用shutil模块。

当然,使用os模块可以写出操作系统无关的代码并不意味着os无法调用一些特定系统的扩展功能,但要切记一点,一旦这样做就会极大损害代码的可移植性。

此外,导入os模块还要小心一点,千万不要为了图省事儿而将os模块解包导入,即不要使用from os import *来导入os 模块;否则os.open()将会覆盖内置函数open(),从而造成预料之外的错误。

2、常用功能

注意,os模块中大多数接受路径作为参数的函数也可以接受“文件描述符”作为参数。文件描述符:file descriptor,在python文档中简记为fd,是一个与某个打开的文件绑定的整数,可以理解为该文件在系统中的编号。

2.1 os.name

该属性广泛的指明了当前python运行的环境,实际上是导入的操作系统相关模块的名称。目前有效名称为以下三个:posix,nt,java.其中posix是portable operating system interface of unix(可移植操作系统接口)的缩写。linux和Mac os均会返回该值;nt全称为“microsoft windows NT”,大体上等同于windows操作系统。java是虚拟机环境下的返回值。

在win10操作系统是执行代码返回为os

 >>> import os
 >>> os.name
 'nt'

查看sys模块中的sys.platform属性可以得到关于运行平台更详细的信息,在此不再赘述。

2.2 os.environ

os.environ属性可以返回环境相关的信息,主要是各类环境变量。返回值是一个映射(类似字典类型),具体的值为第一次导入os模块时的快照,其中的各个键值对,键是环境变量名称,值是环境变量对应的值,第一次导入os模块之后,除非直接修改os.environ的值,否则该属性值不再变化。

比如其中键为“HOMEPATH”(linux下为“HOME”)的项,对应值就是用户主目录的路径。windows下,其值为

 >>> os.environ["HOMEPATH"]
 'd:\\justdopython'

Linux下,其值为

 >>> os.environ["HOME"]
 '/home/justdopython'

由于要使用os.environ["CUDA_VISIBLE_DEVICES"] 功能,使用CPU运行程序,设定为

os.environ["CUDA_VISIBLE_DEVICES"] = "-1"  # 选择使用cpu或gpu -1为使用cpu

详见链接:Python os 模块详解 - 知乎 (zhihu.com) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值