Python学习之os模块及用法

os 模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息。

在 Python 的交互式解释器中先导入 os 模块,然后输入 os.__all__ 命令(__all__ 变量代表了该模块开放的公开接口),即可看到该模块所包含的全部属性和函数。

此处仅介绍 os 模块中常用的属性和函数:

  • os.name:返回导入依赖模块的操作系统名称,通常可返回 'posix'、'nt'、 'java' 等值其中之一。
  • os.environ:返回在当前系统上所有环境变量组成的字典。
  • os.fsencode(filename):该函数对类路径(path-like)的文件名进行编码。
  • os.fsdecode(filename):该函数对类路径(path-like)的文件名进行解码。
  • os.PathLike:这是一个类,代表一个类路径(path-like)对象。
  • os.getenv(key, default=None):获取指定环境变量的值。
  • os.getlogin():返回当前系统的登录用户名。与该函数对应的还有 os.getuid()、os.getgroups()、os.getgid() 等函数,用于获取用户 ID、用户组、组 ID 等,这些函数通常只在 UNIX 系统上有效。
  • os.getpid():获取当前进程 ID。
  • os.getppid():获取当前进程的父进程 ID。
  • os.putenv(key, value):该函数用于设置环境变量。
  • os.cpu_count():返回当前系统的 CPU 数量。
  • os.sep:返回路径分隔符。
  • os.pathsep:返回当前系统上多条路径之间的分隔符。一般在 Windows 系统上多条路径之间的分隔符是英文分号(;);在 UNIX 及类 UNIX 系统(如 Linux、Mac os X)上多条路径之间的分隔符是英文冒号(:)。
  • os.linesep:返回当前系统的换行符。一般在 Windows 系统上换行符是“\r\n”:在 UNIX 系统上换行符是“\n”;在 Mac os X 系统上换行符是“\r”。
  • os.urandom(size):返回适合作为加密使用的、最多由 N 个字节组成的 bytes 对象。该函数通过操作系统特定的随机性来源返回随机字节,该随机字节通常是不可预测的,因此适用于绝大部分加密场景。

下面程序示范了 os 模块的大部分函数的用法:

import os
# 显示导入依赖模块的操作系统的名称
print(os.name)
# 获取PYTHONPATH环境变量的值
print(os.getenv('PYTHONPATH'))
# 返回当前系统的登录用户名
print(os.getlogin())
# 获取当前进程ID
print(os.getpid())
# 获取当前进程的父进程ID
print(os.getppid())
# 返回当前系统的CPU数量
print(os.cpu_count())
# 返回路径分隔符
print(os.sep)
# 返回当前系统的路径分隔符
print(os.pathsep)
# 返回当前系统的换行符
print(os.linesep)
# 返回适合作为加密使用的、最多3个字节组成的bytes
print(os.urandom(3))

运行上面程序,可以看到如下输出结果:

nt
None
yeeku
9904
12036
8
\
;

b'\x12\x1e\xcf'

从上面的输出结果可以看出,在 Windows 系统上 Python 导入依赖模块的操作系统名称为“nt”;当前系统的登录用户名是“yeeku”:当前进程 ID 为“9904”;当前进程的父进程 ID 为“12036”;当前系统上有 8 个 CPU;当前系统(Windows)的路径分隔符是“\”;当前系统(Windows)上多条路径之间的分隔符是分号(;);但在当前系统(Windows)上换行符不能明显看到,这是因为当在控制台输出“\r\n” 时才会产生两个空行。

此外,在 os 模块下还包含大量操作文件和目录的功能函数,本教程将会在后续章节专门介绍这些功能函数。

在 os 模块下还包含各种进程管理函数,它们可用于启动新进程、中止己有进程等。在 os 模块下与进程管理相关的函数如下:

os.abort():生成一个 SIGABRT 信号给当前进程。在 UNIX 系统上,默认行为是生成内核转储;在 Windows 系统上,进程立即返回退出代码 3。

os.execl(path, arg0, arg1, ...):该函数还有一系列功能类似的函数,比如 os.execle()、os.execlp() 等,这些函数都是使用参数列表 arg0, arg1,...来执行 path 所代表的执行文件的。

os.forkpty():fork一个子进程。

os.kill(pid, sig):将 sig 信号发送到 pid 对应的过程,用于结束该进程。

os.killpg(pgid, sig):将 sig 信号发送到 pgid 对应的进程组。

os.popen(cmd, mode='r', buffering=-1):用于向 cmd 命令打开读写管道(当 mode 为 r 时为只读管道,当 mode 为 rw 时为读写管道),buffering 缓冲参数与内置的 open() 函数有相同的含义。该函数返回的文件对象用于读写字符串,而不是字节。

os.spawnl(mode, path, ...):该函数还有一系列功能类似的函数,比如 os.spawnle()、os.spawnlp() 等,这些函数都用于在新进程中执行新程序。

os.startfile(path[,operation]):对指定文件使用该文件关联的工具执行 operation 对应的操作。如果不指定 operation 操作,则默认执行打开(open)操作。operation 参数必须是有效的命令行操作项目,比如 open(打开)、edit(编辑)、print(打印)等。

os.system(command):运行操作系统上的指定命令。

下面程序示范了在 os 模块中与进程管理相关的函数的功能:

import os
# 运行平台上的cmd命令
os.system('cmd')
# 使用Excel打开g:\abc.xls文件
os.startfile('g:\\abc.xls')
os.spawnl(os.P_NOWAIT, 'E:\\Tools\\编辑工具\\Notepad++.7.5.6.bin.x64\\notepad++.exe', ' ')
# 使用python命令执行os_test.py程序
os.execl("D:\\Python\\Python36\\python.exe", " ", 'os_test.py', 'i')

如果直接运行上面程序,可以看到程序运行后使用 Excel 打开了 abe.xls 文件,也打开了 Notepad++ 工具,还使用 python 命令运行了 os_test.py 文件。但如果将程序中粗体字代码取消注释,将看到程序运行后只是启动了 cmd 命令行程序,这是因为使用 as.system() 函数来运行程序时,新程序所在的进程会替代原有的进程。

知识点补充:

os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出OSError异常或其子类异常。

注意

如果是读写文件的话,建议使用内置函数open();

如果是路径相关的操作,建议使用os的子模块os.path;

如果要逐行读取多个文件,建议使用fileinput模块;

要创建临时文件或路径,建议使用tempfile模块;

要进行更高级的文件和路径操作则应当使用shutil模块。

到此这篇关于Python学习之os模块及用法的文章就介绍到这了,更多相关Python os模块及用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅谈Python中os模块及shutil模块的常规操作

    如下所示: #os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表.这个列表以字母顺序. 它不包括 '.' 和'..' 即使它在文件夹中. #只支持在 Unix, Windows 下使用 import os, sys # 打开文件 path=r'C:\Users\Administrator.SKY-20180518VHY\Desktop\rx\ore' dirs = os.listdir( path ) print(dirs) # 输出所有文件和文件夹 for fil

  • python os模块常用的29种方法使用详解

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 print(os.getcwd()) >>E:\pycharm\test os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.chdir('E:\pycharm') print(os.getcwd()) >>E:\pycharm os.curdir 是一个值,返回当前目录: ('.') print(os.curdir) >>. os

  • Python os模块常用方法和属性总结

    这篇文章主要介绍了Python os模块常用方法和属性总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. os 模块常用的方法及属性 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径. os.getenv()和os.putenv:分别用来

  • Python中os模块功能与用法详解

    本文实例讲述了Python中os模块功能与用法.分享给大家供大家参考,具体如下: OS模块 Python的os模块封装了常见的文件和目录操作,本文只是列出部分常用的方法,更多的方法可以查看官方文档. 下面是部分常见的用法: 方法 说明 os.mkdir 创建目录 os.rmdir 删除目录 os.rename 重命名 os.remove 删除文件 os.getcwd 获取当前工作路径 os.walk 遍历目录 os.path.join 连接目录与文件名 os.path.split 分割文件名与目

  • Python学习笔记之读取文件、OS模块、异常处理、with as语法示例

    本文实例讲述了Python学习笔记之读取文件.OS模块.异常处理.with as语法.分享给大家供大家参考,具体如下: 文件读取 #读取文件 f = open("test.txt","r") print(f.read()) #打印文件内容 #关闭文件 f.close() 获取文件绝对路径:OS模块 os.environ["xxx"]  获取系统环境变量 os.getcwd 获取当前python脚本工作路径 os.getpid() 获取当前进程ID

  • Python如何使用OS模块调用cmd

    在os模块中提供了两种调用 cmd 的方法,os.popen() 和 os.system() os.system(cmd) 是在执行command命令时需要打开一个终端,并且无法保存command命令的执行结果. os.popen(cmd,mode) 打开一个与command进程之间的管道.返回值是一个文件对象,可以读或者写(由mode决定,默认是'r').如果mode为'r',可以使用此函数的返回值调用read()来获取command命令的执行结果. os.system() 定义: def s

  • Python学习之os模块及用法

    os 模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息. 在 Python 的交互式解释器中先导入 os 模块,然后输入 os.__all__ 命令(__all__ 变量代表了该模块开放的公开接口),即可看到该模块所包含的全部属性和函数. 此处仅介绍 os 模块中常用的属性和函数: os.name:返回导入依赖模块的操作系统名称,通常可返回 'posix'.'nt'. 'java' 等值其中之一. os.environ:返回在当前系统上所有环境变量组成的字典. os.fs

  • python标准库OS模块详解

    python标准库OS模块简介 os就是"operating system"的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口.通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性.如果该模块中相关功能出错,会抛出OSError异常或其子类异常. 注意 如果是读写文件的话,建议使用内置函数open(): 如果是路径相关的操作,建议使用os的子模块os.path: 如果要逐行读取多个文件,建议使用fileinput模

  • Python学习之os包使用教程详解

    目录 os 模块 文件与目录函数介绍 path 模块 ​path 模块常用方法 今天我们来学习一下 python 的内置包 —> OS 包.OS 包拥有着普遍的操作系统功能,拥有着各种各样的函数来操作系统的驱动功能.其中最常用的就是对 路径 与 文件的操作,比如检查某个路径下是否存在某个文件,某个路径是否存在等.也可以创建.删除文件等,接下来我们就详细的看一看 OS 中关于文件的操作功能与用法. os 模块 文件与目录函数介绍 函数名 参数 介绍 举例  返回值 getcwd 没有参数 返回当前

  • Python学习之sys模块使用教程详解

    sys模块 与 os包一样,也是对系统资源进行调用.功能同样也是非常丰富,接下来我们会对 sys模块的一些简单且常用的函数进行介绍,主要针对一些非功能性的函数与属性来认识一些不太常见的 Python 背后的事件. sys 中的常用方法 函数名 参数 介绍 举例 返回值 modules(属性) 无 将Python启动时加载的模块集合起来并返回一个列表 sys.modules 列表 path(属性) 无 返回当前Py的环境路径(当前py环境可以导入内置.第三方包与函数的所在路径) sys.path

  • Python学习之日志模块详解

    目录 日志的作用 日志的等级 logging 模块的使用 logging 模块演示小案例 OK,今天我们来学习一下 python 中的日志模块,日志模块也是我们日后的开发工作中使用率很高的模块之一,接下来们就看一看今天具体要学习日志模块中的那些内容吧. 日志的作用 说到日志,我们完全可以想象为现实生活中的日记.日记是我们平时记录我们生活中点点滴滴的一种方法,而日志我们可以认为是 程序的日记 ,程序的日记是用来记录程序的行为,一般来说我们可以通过日志记录一些程序的重要信息. 比如哪里报错了?报错原

  • Python学习之configparser模块的使用详解

    目录 1 configparser安装 2 configparser简介 3 表示方法 4 configparser详细使用 4.1 对象初始化 4.2 获取所有的sections 4.3 获取所有的sections对应的options 4.4 read方法和get方法,获取指定section下的option值 4.5 items方法,获取指点section所用配置信息 4.6 set和write方法,修改某个option的值 4.7 has_section和has_option方法 4.8 a

  • Python学习笔记之自定义函数用法详解

    本文实例讲述了Python学习笔记之自定义函数用法.分享给大家供大家参考,具体如下: 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print()等.也可以创建用户自定义函数. 函数定义 函数定义的简单规则: 函数代码块以def关键词开头,后接函数标识符名称和圆括号(),任何传入参数和自变量必须放在圆括号中间 函数内容以冒号起始,并且缩进 若有返回值,Return[expression] 结束函数:不带return 表达式相当于返回None 函数通常使用三个单引

  • python threading和multiprocessing模块基本用法实例分析

    本文实例讲述了python threading和multiprocessing模块基本用法.分享给大家供大家参考,具体如下: 前言 这两天为了做一个小项目,研究了一下python的并发编程,所谓并发无非多线程和多进程,最初找到的是threading模块,因为印象中线程"轻量...","切换快...","可共享进程资源..."等等,但是没想到这里水很深,进而找到了更好的替代品multiprocessing模块.下面会讲一些使用中的经验. 后面出现的

  • Python学习笔记之lambda表达式用法详解

    本文实例讲述了Python学习笔记之lambda表达式用法.分享给大家供大家参考,具体如下: Lambda 表达式 使用 Lambda 表达式创建匿名函数,即没有名称的函数.lambda 表达式非常适合快速创建在代码中以后不会用到的函数. 麻烦的写法: def multiply(x, y): return x * y 使用Lambda之后: double = lambda x, y: x * y Lambda 函数的组成部分: 关键字 lambda 表示这是一个 lambda 表达式. lamb

  • Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一下while循环的使用方法: Python 中的While循环 For 循环是一种有限迭代,意味着循环主体将运行预定义的次数.这与无限迭代循环不同,无限迭代循环是指循环重复未知次数,并在满足某个条件时结束,while 循环正是这种情况.下面是一个 while 循环的示例: card_deck = [4, 11

随机推荐