栏目分类
Artificial Liquid Intelligence中文网

当前位置:Castle of Blackwater中文网 > Artificial Liquid Intelligence中文网 >

热点资讯

Python标准库之os模块详解

发布日期:2025-01-04 11:43    点击次数:158

OS标准库是操作系统接口模块,提供了操作系统相关功能的调用函数。 使用OS标准库前,需要导入模块 import os 1、文件目录操作 os.stat() 获取文件状态 获取文件或文件描述符的状态,返回一个 stat_result 对象。 stat_result对象有很多可以调用的属性:st_atime:最近访问时间,单位秒st_mtime:最近修改时间,单位秒st_ctime:文件创建时间(Windows),修改时间(unix),单位秒st_size:文件大小,单位字节st_uid:文件所有者的IDst_nlink:硬链接数量st_dev:文件所在设备的标识符st_ino:文件的唯一标识(Windows是文件索引号,Unix是索引节点号)st_mode:文件模式,包括文件类型和文件模式位(即权限位)。st_atime_ns:最近访问时间,单位纳秒st_mtime_ns:最近修改时间,单位纳秒st_ctime_ns:文件创建时间(Windows),修改时间(unix),单位纳秒 还有一些属性需要在Unix系统上才能调用: st_blocks:文件的字节块数,每块512字节。st_blksize:“首选的” 块大小,用于提高文件系统 I/O 效率。写入文件时块大小太小可能会导致读取-修改-重写效率低下。st_rdev:设备类型(针对inode设备)st_flags:文件标志位(用户定义的)st_gen:文件生成号st_birthtime:文件创建时间 os.utime() 修改文件时间 修改文件的访问时间和修改时间,修改后需要重新获取 stat_result 对象,才会更新。 语法 参数 path:(必选)文件路径atime:(必选)文件访问时间mtime:(必选)文件修改时间 实例 输出: 1491413771.01591413771.0 os.rename() 修改文件/目录 修改文件名或目录名。 语法 参数 src:(必选)源文件/目录,即需要修改的文件/目录dst:(必选)目的文件/目录,即修改后的文件/目录 实例 对于Windows系统,文件名已存在会报错 FileExistsError。 对于Unix系统,将文件重命名为目录会报错 IsADirectoryError;将目录重命名为文件会报错 NotADirectoryError。 os.renames() 递归修改文件/目录 递归修改文件名或目录名。先创建所需要的中间目录,重命名后,再调用 removedirs() 删除旧路径中不需要的目录。 语法 参数 old:(必选)旧路径new:(必选)新路径 实例 os.replace() 替换文件/目录 修改文件名或目录名,如果文件名已存在,则会静默修改;如果目录已存在,则会报错 OSError。 语法 参数 old:(必选)修改前的路径new:(必选)修改后的路径 实例 os.remove() 删除文件 删除文件,删除目录会报错 FileNotFoundError 语法 参数 path:(必选)文件路径(绝对路径/相对路径) 实例 os.getcwd() 获取工作目录 获取当前工作目录,也就是当前所在路径,返回字符串类型。 输出: E:\data\PrCharm\pythonProject1 os.getcwdb() 获取工作目录 获取当前工作目录,二进制序列(bytes)类型。 输出: b'E:\\data\\PrCharm\\pythonProject1' os.chdir() 修改工作目录 修改当前工作目录 语法 参数 path:(必选,str类型)需要修改的路径 实例 输出: E:\data os.mkdir() 创建目录 创建目录,如果目录已存在会报错 FileExistsError,如果路径中父目录不存在会报错 FileNotFoundError。 语法 参数 path:(必选)目录的路径(绝对路径/相对路径)mode:目录的权限(某些系统会忽略) 实例 当前目录下创建了目录 os.makedirs() 创建多级目录 创建多级目录,上级目录不存在也会自动创建。 语法 参数 path:(必选)目录的路径(绝对路径/相对路径)mode:目录的权限(某些系统会忽略) 实例 当前目录下创建了目录 os.rmdir() 删除目录 删除目录,如果目录不存在,会报错 FileNotFoundError;如果目录不为空,会报错 OSError。 语法 参数 path:(必选)需要删除的目录(绝对路径/相对路径) 实例 os.removedirs() 删除多级目录 递归删除多级目录,如果删除了最后一级目录,会尝试依次删除上级目录(删除不掉不会报错,因为大多是因为目录不为空)。 语法 参数 path:(必选)目录路径 实例 2、系统信息 os.name 获取操作系统类型 获取操作系统的类型,只有三个值 nt 、 posix 、 java nt:Windows系统posix:Linux/mac系统java:java虚拟机 比如,我的电脑是Windows,就返回 nt 输出: nt os.environ 获取环境变量 获取系统环境变量等各种系统信息(导入OS模块时自动收集),字典格式,可以根据建获取 Windows常用字段 Linux常用字段 环境变量的增删改查操作 os.getenv() 获取环境变量 根据环境变量名,获取环境变量的值,如果环境变量名不存在,就返回default。 语法 参数 key:(必选,str类型)环境变量名default:(可选)环境变量不存在时返回,默认值是 None 实例 输出: C:\Users\WANGYU~1\AppData\Local\Temp os.get_exec_path() 获取可执行文件路径 获取可执行文件路径,从 environ 对象中,返回可执行文件目录的列表。 语法 参数 environ:(可选)默认值None,即使用当前的 environ。 实例 输出: ['E:\\data\\PrCharm\\pythonProject1\\venv\\Scripts', 'C:\\...... os.cpu_count() 获取CPU数量 返回系统的CPU数量,不确定就返回None。 语法 实例 输出: 8 os.getlogin() 获取登录用户 获取当前登录用户,准确来说,是通过控制终端进程进行登录的用户名。 os.getpid() 获取当前进程ID 获取当前进程ID 输出: 8212 os.getppid() 获取父进程ID 获取当前进程的父进程ID 输出: 14132 os.urandom() 获取随机字节 获取指定大小的随机字节,常用于加密。 语法 参数 size:(必选)指定随机字节的大小 实例 输出: b'\xb1\n\xbaw2\x88\x84\xf8' 3、进程管理 创建和管理进程的函数。 os.times() 获取进程时间 返回当前的全局进程时间,列表形式,有5个属性。 user:用户时间system:系统时间children_user:所有子进程的用户时间children_system:所有子进程的系统时间elapsed:从过去的固定时间点起,经过的真实时间 Windows系统上,只有user、system两个属性有值,其他均为0。 语法 实例 输出: nt.times_result(user=0.046875, system=0.109375, children_user=0.0, children_system=0.0, elapsed=0.0) os.abort() 中断当前进程 发送 SIGABRT 信号给当前进程,用来终止进程,如果进程没有中断,则函数不会返回。 Unix系统会生成一个核心转储文件Windows系统立即返回退出代码 语法 比如,当程序出现严重错误时,调用 os.abort() 终止进程。 补充: SIGABRT用来中止一个程序,处理函数返回后,所有打开的文件描述符将会被关闭,流也会被flush,程序也会结束。SIGABRT是一个暴力信号,可能会破坏进程的状态,应该谨慎使用。 os.system() 执行系统命令 执行系统命令,并在控制台输出执行结果 语法 参数 commend:(必选)需要执行的命令 实例 输出: ���� Ping www.a.shifen.com [39.156.66.18] ���� 32 �ֽڵ�����:���� 39.156.66.18 �Ļظ�: �ֽ�=32 ʱ��=17ms TTL=50���� 39.156.66.18 �Ļظ�: �ֽ�=32 ʱ��=16ms TTL=50 os.popen() 执行shell命令 通过Python执行系统命令,返回命令的执行结果(文本类型的对象)。 语法 参数 command:(必选)需要执行的命令mode:(可选)文件打开模式,默认值 r (只读模式)buffer:缓冲区大小, 实例 输出: 正在 Ping www.a.shifen.com [39.156.66.14] 具有 32 字节的数据:来自 39.156.66.14 的回复: 字节=32 时间=13ms TTL=50来自 39.156.66.14 的回复: 字节=32 时间=48ms TTL=50 os.startfile() 打开文件 自动打开文件,绝对路径要用 / ,相对路径要用 \ 语法 实例 执行后,桌面上会打开指定的文件。 4、错误/异常 OS模块所有函数都会抛出 OSError 及其子类 BlockingIOError OSError 的子类 当在设置为非阻塞操作的对象(例如:套接字)上,执行阻塞操作时触发。 ChildProcessError OSError 的子类 子进程上的操作失败时触发。 ConnectionError OSError 的子类 与连接相关的问题的基类,常见的有它的子类。 BrokenPipeError ConnectionError 的子类 管道中断时触发。 管道是单向通信的,在管道另一端关闭时写入,或者在已经关闭的套接字上写入,都会导致管道中断。 ConnectionAbortedError ConnectionError 的子类 连接被对端终止时触发。 这种异常通常意味着网络连接被意外中断,可能是服务器出现故障、网络拥堵等原因导致的,比如 服务器返回的响应超时或断开了连接。 ConnectionRefusedError ConnectionError 的子类 连接被对方拒绝时触发。 常见的原因有: 你想连接的服务器没有启动相关服务防火墙阻止连接端口被占用,关闭占用端口的服务IP或端口错误 ConnectionResetError ConnectionError 的子类 对端重置连接时触发。 常见的原因有: 高延迟或丢包等网络错误导致连接中断防火墙等ACL访问控制出于安全原因阻止了连接 FileExistsError OSError 的子类 创建的文件或目录已经存在时触发 FileNotFoundError OSError 的子类 请求的文件或目录不存在时触发 InterruptedError OSError 的子类 系统调用被传入信号中断时触发 IsADirectoryError OSError 的子类 对目录执行文件操作时触发 NotADirectoryError OSError 的子类 对文件执行目录操作时触发 PermissionError OSError的子类 执行的操作没有足够的访问权限时触发 ProcessLookupError OSError的子类 指定的进程不存在时触发 TimeoutError OSError的子类 系统功能在系统级别的超时时触发 以上就是Python标准库之os模块详解的详细内容,更多关于Python os模块的资料请关注脚本之家其它相关文章!

友情链接:

Powered by Castle of Blackwater中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024