源代码: Lib/os.py
进程:
os.environ
一个表示字符串环境的 mapping 对象。
os.environb
字节版本的 environ: 一个以字节串表示环境的mapping 对象。
os.getenv(key, default=None)
如果存在,返回环境变量 key 的值,否则返回 default。 key , default 和返回值均为 str 字符串类型。
os.getenvb(key, default=None)
如果存在环境变量 key 那么返回其值,否则返回 default。 key , default 和返回值均为bytes字节串类型。
os.get_exec_path(env=None)
返回将用于搜索可执行文件的目录列表,与在外壳程序中启动一个进程时相似。指定的 env 应为用于搜索 PATH 的环境变量字典。
os.getpid()
返回当前进程ID
os.getppid()返回父进程ID。当父进程已经结束,在Unix中返回的ID是初始进程(1)中的一个,在Windows中仍然是同一个进程ID,该进程ID有可能已经被进行进程所占用。os.strerror(code)根据 code 中的错误码返回错误消息。 在某些平台上当给出未知错误码时 strerror() 将返回 NULL 并会引发 ValueError。os.supports_bytes_environ如果操作系统上原生环境类型是字节型则为 True (例如在 Windows 上为 False)。os.umask(mask)设定当前数值掩码并返回之前的掩码。文件:
os.fdopen(fd, *args, **kwargs)
该函数创建新的文件对象。返回打开文件描述符 fd 对应文件的对象。类似内建 open() 函数,二者接受同样的参数。不同之处在于 fdopen() 第一个参数应该为整数。
os.close(fd)关闭文件描述符 fdos.closerange(fd_low, fd_high)关闭从 fd_low (包括)到 fd_high (排除)间的文件描述符,并忽略错误。os.device_encoding(fd)如果连接到终端,则返回一个与 fd 关联的设备描述字符,否则返回 None.os.fstat(fd)
获取文件描述符 fd 的状态. 返回一个 stat_result 对象。
从 Python 3.3 起,此功能等价于 os.stat(fd)。os.fsync(fd)
强制将文件描述符 fd 指向的文件写入磁盘。在 Unix,这将调用原生 fsync() 函数;在 Windows,则是 MS _commit() 函数。
如果要写入的是缓冲区内的 Python 文件对象 f,请先执行 f.flush(),然后执行 os.fsync(f.fileno()),以确保与 f 关联的所有内部缓冲区都写入磁盘。os.ftruncate(fd, length)将文件描述符 fd 对应的文件切分开,以使其最大为 length 字节。从 Python 3.3 开始,它等效于 os.truncate(fd, length)。os.isatty(fd)如果文件描述符 fd 打开且已连接至 tty 设备(或类 tty 设备),返回 True,否则返回 False。 os.lseek(fd, pos, how)将文件描述符 fd 的当前位置设置为 pos,位置的计算方式 how 如下:设置为 SEEK_SET 或 0 表示从文件开头计算,设置为 SEEK_CUR 或 1 表示从文件当前位置计算,设置为 SEEK_END 或 2 表示文件末尾计算。返回新指针位置,这个位置是从文件开头计算的,单位是字节。os.SEEK_SET、os.SEEK_CUR、os.SEEK_END lseek() 函数的参数,它们的值分别为 0、1 和 2。os.open(path, flags, mode=0o777, *, dir_fd=None)
打开文件 path,根据 flags 设置各种标志位,并根据 mode 设置其权限模式。当计算 mode 时,会首先根据当前 umask 值将部分权限去除。本方法返回新文件的描述符。
以下常量是 open() 函数 flags 参数的选项。可以用按位或运算符 | 将它们组合使用。部分常量并非在所有平台上都可用。
os.O_RDONLYos.O_WRONLYos.O_RDWRos.O_APPENDos.O_CREATos.O_EXCLos.O_TRUNC
上述常量在 Unix 和 Windows 上均可用。
os.O_DSYNCos.O_RSYNCos.O_SYNCos.O_NDELAYos.O_NONBLOCKos.O_NOCTTYos.O_CLOEXEC
上述常数仅在 Unix 系统中可用。
os.O_BINARYos.O_NOINHERITos.O_SHORT_LIVEDos.O_TEMPORARYos.O_RANDOMos.O_SEQUENTIALos.O_TEXT
上述常数仅在 Windows 系统中可用。
os.pipe()
创建一个管道,返回一对分别用于读取和写入的文件描述符 (r, w)。
os.access(path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)
使用真实的 uid/gid 测试对 path 的访问。请注意,大多数测试操作将使用有效的 uid/gid,因此可以在 suid/sgid 环境中运用此例程,来测试调用用户是否具有对 path 的指定访问权限。mode 为 F_OK 时用于测试 path 是否存在,也可以对 R_OK 、W_OK 和 X_OK 中的一个或多个进行“或”运算来测试指定权限。允许访问则返回 True, 否则返回 False.
os.F_OKos.R_OKos.W_OKos.X_OK
作为 access() 的 mode 参数的可选值,分别测试 path 的存在性、可读性、可写性和可执行性。
os.chdir(path)
将当前工作目录更改为 path
os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)
将 path 的 mode 更改为其他由数字表示的 mode 。mode 可以用以下值之一,也可以将它们按位或组合起来:
stat.S_ISUID
stat.S_ISGID
stat.S_ENFMT
stat.S_ISVTX
stat.S_IREAD
stat.S_IWRITE
stat.S_IEXEC
stat.S_IRWXU
stat.S_IRUSR
stat.S_IWUSR
stat.S_IXUSR
stat.S_IRWXG
stat.S_IRGRP
stat.S_IWGRP
stat.S_IXGRP
stat.S_IRWXO
stat.S_IROTH
stat.S_IWOTH
stat.S_IXOTH
os.getcwd()
返回表示当前工作目录的字符串。
os.getcwdb()返回表示当前工作目录的字节串 (bytestring)。os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True)
创建一个指向 src 的硬链接,名为 dst。
os.listdir(path='.')
返回一个列表,该列表包含了 path 中所有文件与目录的名称。该列表按任意顺序排列,并且不包含特殊条目 '.' 和 '..',即使它们确实在目录中存在。
os.mkdir(path, mode=0o777, *, dir_fd=None)
创建一个名为 path 的目录,应用以数字表示的权限模式 mode 。
os.makedirs(name, mode=0o777, exist_ok=False)
递归目录创建函数。与 mkdir() 类似,但会自动创建到达最后一级目录所需要的中间目录。
os.major(device)
提取主设备号,提取自原始设备号(通常是 stat 中的 st_dev 或 st_rdev 字段)。
os.minor(device)
提取次设备号,提取自原始设备号(通常是 stat 中的 st_dev 或 st_rdev 字段)。
os.makedev(major, minor)将主设备号和次设备号组合成原始设备号。
os.readlink(path, *, dir_fd=None)
返回一个字符串,为符号链接指向的实际路径。其结果可以是绝对或相对路径。如果是相对路径,则可用 os.path.join(os.path.dirname(path), result) 转换为绝对路径。
os.remove(path, *, dir_fd=None)
删除文件路径。如果path是一个目录,则会引发OSError。使用rmdir()删除目录。
在 Windows 上,尝试删除正在使用的文件会抛出异常。而在 Unix 上,虽然该文件的条目会被删除,但分配给文件的存储空间仍然不可用,直到原始文件不再使用为止。
os.removedirs(name)
递归删除目录。工作方式类似于 rmdir() , 不同之处在于,如果成功删除了末尾一级目录,removedirs() 会尝试依次删除 path 中提到的每个父目录,直到抛出错误为止(但该错误会被忽略,因为这通常表示父目录不是空目录)。例如,os.removedirs('foo/bar/baz') 将首先删除目录 'foo/bar/baz',然后如果 'foo/bar' 和 'foo' 为空,则继续删除它们。如果无法成功删除末尾一级目录,则抛出 OSError 异常。
os.rmdir(path, *, dir_fd=None)
删除目录路径。仅当目录为空时才工作,否则会引发OSError。为了删除整个目录树,可以使用shutil.rmtree()。
os.stat(path, *, dir_fd=None, follow_symlinks=True)
获取文件或文件描述符的状态。在所给路径上执行等效于 stat() 系统调用的操作。path 可以是字符串类型,或bytes 类型,或打开的文件描述符。返回一个 stat_result 对象。
os.truncate(path, length)
截断 path 对应的文件,以使其最大为 length 字节大小。
os.utime(path, times=None, *, [ns, ]dir_fd=None, follow_symlinks=True)
设置文件 path 的访问时间和修改时间。
os.walk(top, topdown=True, onerror=None, followlinks=False)
生成目录树中的文件名,方式是按上->下或下->上顺序浏览目录树。对于以 top 为根的目录树中的每个目录(包括 top 本身),它都会生成一个三元组 (dirpath, dirnames, filenames)。
dirpath 是一个字符串,表示目录的路径。dirnames 是一个列表,内含 dirpath 中子目录的名称(不包括 '.' 和 '..' )。filenames 也是列表,内含 dirpath 中非目录文件的名称。注意,列表中的名称不包含路径部分。要获取 dirpath 中文件或目录的完整路径(从 top 起始),请执行 os.path.join(dirpath, name)。
进程管理:
os.kill(pid, sig)
将信号 sig 发送至进程 pid 。
os.popen(cmd, mode='r', buffering=-1)
打开一个管道,它通往 / 接受自命令 cmd。返回值是连接到管道的文件对象,根据 mode 是 'r' (默认)还是 'w' 决定该对象可以读取还是写入。
os.system(command)
在子 shell 中执行命令(字符串)
os.times()
返回当前的全局进程时间。返回值是一个有 5 个属性的对象:
user - 用户时间
system - 系统时间
children_user - 所有子进程的用户时间
children_system - 所有子进程的系统时间
elapsed - 从过去的固定时间点起,经过的真实时间
os.cpu_count()
返回系统的 CPU 数量。不确定则返回 None。
os.getrandom(size, flags=0)
获得最多为 size 的随机字节。本函数返回的字节数可能少于请求的字节数。
这些字节可用于为用户空间的随机数生成器提供种子,或用于加密目的。
os.urandom(size)
返回大小为 size 的字符串,它是适合加密使用的随机字节。
本函数从系统指定的随机源获取随机字节。对于加密应用程序,返回的数据应有足够的不可预测性,尽管其确切的品质取决于操作系统的实现。