python os模块详解

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) 

你可能感兴趣的:(python,python)