一、官方文档
os --- 多种操作系统接口 — Python 3.10.2 文档
https://docs.python.org/zh-cn/3/library/os.html本模块提供了一种使用与操作系统相关的功能的便捷式途径。如果你只是想读写一个文件,请参阅 open(),如果你想操作文件路径,请参阅 os.path 模块,如果你想读取通过命令行给出的所有文件中的所有行,请参阅 fileinput 模块。 为了创建临时文件和目录,请参阅 tempfile 模块,对于高级文件和目录处理,请参阅 shutil 模块。
如果使用无效或无法访问的文件名与路径,或者其他类型正确但操作系统不接受的参数,此模块的所有函数都抛出 OSError (或者它的子类)。
二、根据官方文档进行操作
import os
print(os.name) # nt , 即Windows NT;目前已注册: 'posix', 'nt', 'java'
# print(os.ctermid()) # 适用Unix,返回与进程控制终端对应的文件名
print(os.environ) # 返回某些平台的环境变量字典对象,如Jenkins的变量读取
# print(os.environb) # 环境变量字节对象,python 3.9版本以上才支持
os.chdir("C:/") # 切换文件路径,无返回,相当于 cd 指令
# fd = os.open( "/tmp", os.O_RDONLY )
# os.fchdir(fd) # 切换文件路径,无返回,相当于cd指令
print(os.getcwd()) # "C:\", 获取当前目录
print(os.fsencode("./myosstudy.py")) # b'./myosstudy.py', fsencode()方法可以将 路径类 filename 编码为文件系统编码
print(os.fsdecode("./myosstudy.py")) # ./myosstudy.py, fsdecode()方法可以将filename从文件系统编码方式解码
print(os.fspath("./myosstudy.py")) # ./myosstudy.py, 返回路径的文件系统表示
print(os.getenv("path")) # 如果存在,返回环境变量 key 的值,否则返回 default。 key , default 和返回值均为 str 字符串类型。
# print(os.getenvb("path")) # 只支持Linux
print(os.get_exec_path()) # os.get_exec_path(), Python中的方法用于获取启动进程时将搜索命名可执行文件的目录列表
# print(os.getegid()) # 适用Unix , 返回当前进程的有效组ID。对应当前进程执行文件的 "set id" 位。
# print(os.geteuid()) # 适用Unix , 返回当前进程的有效用户ID
# print(os.getgid()) # 适用Unix ,返回当前进程的实际组ID。
# print(os.getgroups()) # 适用Unix ,返回当前进程关联的附加组ID列表。
print(os.getlogin()) # 返回通过控制终端进程进行登录的用户名
# print(os.getpgid(pid)) # 适用Unix , 根据进程id pid 返回进程的组 ID 列表。如果 pid 为 0,则返回当前进程的进程组 ID 列表
# os.getpgrp() # # 适用Unix ,返回当时进程组的ID
print(os.getpid()) # 返回当前进程ID
print(os.getppid()) # 返回父进程ID。
# os.getpriority(which, who) # 适用Unix ,获取程序调度优先级。
# print(os.PRIO_PROCESS) # 适用Unix, 函数 getpriority() 和 setpriority() 的参数
# os.PRIO_PGRP # 适用Unix, 函数 getpriority() 和 setpriority() 的参数
# os.PRIO_USER # 适用Unix, 函数 getpriority() 和 setpriority() 的参数
# print(os.getresuid()) # 适用Unix, 返回一个由 (ruid, euid, suid) 所组成的元组,分别表示当前进程的真实用户ID,有效用户ID和暂存用户ID
# os.getresgid() # 返回一个由 (rgid, egid, sgid) 所组成的元组,分别表示当前进程的真实组ID,有效组ID和暂存组ID。
# os.getuid() # 返回当前进程的真实用户ID。
# os.initgroups(用户名, gid ) # 调用系统 initgroups(),使用指定用户所在的所有值来初始化组访问列表,包括指定的组ID。
# os.putenv(键,值) # 将名为 key 的环境变量值设置为 value。该变量名修改会影响由 os.system(), popen() ,fork() 和 execv() 发起的子进程。
# os.setegid() # 设置当前进程的有效组ID。
# os.seteuid() # 设置当前进程的有效组ID。
# os.setgid # 设置当前进程的组ID
# os.setgroups # 将 group 参数值设置为与当进程相关联的附加组ID列表。group 参数必须为一个序列,每个元素应为每个组的数字ID。该操作通常只适用于超级用户。
# ...
# print(os.uname()) # 返回当前操作系统的识别信息。返回值是一个有5个属性的对象
# print(os.umask(0)) # 设定当前数值掩码并返回之前的掩码
# os.unsetenv() # 取消设置(删除)名为 key 的环境变量。
# os.fdopen( fd , * args , ** kwargs ) # 返回打开文件描述符 fd 对应文件的对象。类似内建 open() 函数,二者接受同样的参数。不同之处在于 fdopen() 第一个参数应该为整数。
# os.close( fd ) # 关闭文件描述符 fd。
# os.closerange( fd_low , fd_high ) # 关闭从 fd_low (包括)到 fd_high (排除)间的文件描述符,并忽略错误。
# os.copy_file_range( src , dst , count , offset_src = None , offset_dst = None ) # 从文件描述符 src 复制 count 字节,从偏移量 offset_src 开始读取,到文件描述符 dst,从偏移量 offset_dst 开始写入。
# ... 太多了,只能用到的时候再去查官方文档
三、os的常用方法
| 方法 | 作用 |
os.getcwd() | 获取当前工作目录 |
os.chdir(path) | 切换目录 |
os.curdir | 返回当前目录 |
os.pardir | 返回父级目录 |
os.makedirs(path) | 递归创建目录 |
os.removedirs(path) | 递归删除空目录,若非空,则停止删除 |
os.mkdir(path) | 创建单目录 |
os.rmdir(path) | 删除单个非空目录 |
os.listdir() | 查看目录内容 |
os.remove() | 删除一个文件 |
os.rename(old, new) | 重命名文件与目录 |
os.stat(path) | 获取文件的信息 |
os.sep | 输出当前系统的分隔符 win下是‘\’,linux下是‘/’ |
os.linesep | 输出当前系统的行终止符 |
os.pathsep | 输出当前系统的路径分隔符 |
os.system() | 执行系统命令 |
os.name() | 返回系统类型 |
os.environ | 返回环境变量 |
os.path.abspath() | 返回绝对路径 |
os.path.split(path) | 把路径跟文件名分开 |
os.path.dirname() | 返回文件的所在的路径 |
os.path.basename() | 返回文件名 |
os.path.exists() | 判断目录是否存在 |
os.path.isabs() | 判断是不是绝对路径 |
os.path.isdir() | 判断目录是否存在 |
os.path.join() | 合并目录 |
6168

被折叠的 条评论
为什么被折叠?



