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 大多数模块函数的用法:
importos
#依赖模块的显示导入操作系统的名称
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)
#Bytess适用于加密,最多由三个字节组成
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 与进程管理相关的函数在模块中的功能: 如果上述程序直接运行,可以看到程序运行后使用 Excel 打开了 abe.xls 文件,也打开了 Notepad++ 还使用工具 python 命令运行了 os_test.py 文件。但是,如果注释取消了程序中的粗体字代码,则只会在程序运行后启动 cmd 这是因为使用了命令行程序 as.system() 当函数运行程序时,新程序所在的过程将取代原始过程。importos
#运行平台上的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\\\\\python.exe","",'os_test.py','i')
