知行编程网知行编程网  2022-12-20 17:30 知行编程网 隐藏边栏  16 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python os模块及用法的相关知识,包括os模块的方法用来返回,以及python3 安装os模块这些编程知识,希望对大家有参考作用。

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 个字节。此函数通过特定于操作系统的随机源返回随机字节,这通常是不可预测的,因此适用于大多数加密方案。

下面程序示范了 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'


从上面的输出可以看出,Python在Windows系统上导入依赖模块的操作系统名称是“nt”;当前系统登录用户名为“yeeku”:当前进程号为“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, ...执行路径表示的可执行文件。

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 buffer参数与内置的open()函数含义相同。此函数返回的文件对象用于读写字符串,而不是字节。

os.spawnl(mode, path, ...): 这个函数还有一系列功能类似的函数,比如os.spawnle(), os.spawnlp()等,这些函数用来执行新的程序新流程。

os.startfile(path[,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()函数运行程序时,新程序所在的进程会替换原来的进程。过程。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享