文章目录

  • 一.Python OS及errno模块简介
    • 1.1 OS模块介绍
    • 1.2 errno模块
  • 二.Python的OS及errno模块实操
  • 参考

一.Python OS及errno模块简介

以下整理的OS模块来源于互联网。

1.1 OS模块介绍

os.remove() 删除文件
os.unlink() 删除文件
os.rename() 重命名文件
os.listdir() 列出指定目录下所有文件
os.chdir() 改变当前工作目录
os.getcwd() 获取当前文件路径
os.mkdir() 新建目录
os.rmdir() 删除空目录(删除非空目录, 使用shutil.rmtree())
os.makedirs() 创建多级目录
os.removedirs() 删除多级目录
os.stat(file) 获取文件属性
os.chmod(file) 修改文件权限
os.utime(file) 修改文件时间戳
os.name(file) 获取操作系统标识
os.system() 执行操作系统命令
os.execvp() 启动一个新进程
os.fork() 获取父进程ID,在子进程返回中返回0
os.execvp() 执行外部程序脚本(Uinx)
os.spawn() 执行外部程序脚本(Windows)
os.access(path, mode) 判断文件权限(详细参考cnblogs)
os.wait() 暂时未知
os.path模块:
os.path.split(filename) 将文件路径和文件名分割(会将最后一个目录作为文件名而分离)
os.path.splitext(filename) 将文件路径和文件扩展名分割成一个元组
os.path.dirname(filename) 返回文件路径的目录部分
os.path.basename(filename) 返回文件路径的文件名部分
os.path.join(dirname,basename) 将文件路径和文件名凑成完整文件路径
os.path.abspath(name) 获得绝对路径
os.path.splitunc(path) 把路径分割为挂载点和文件名
os.path.normpath(path) 规范path字符串形式
os.path.exists() 判断文件或目录是否存在
os.path.isabs() 如果path是绝对路径,返回True
os.path.realpath(path) #返回path的真实路径
os.path.relpath(path[, start]) #从start开始计算相对路径
os.path.normcase(path) #转换path的大小写和斜杠
os.path.isdir() 判断name是不是一个目录,name不是目录就返回false
os.path.isfile() 判断name是不是一个文件,不存在返回false
os.path.islink() 判断文件是否连接文件,返回boolean
os.path.ismount() 指定路径是否存在且为一个挂载点,返回boolean
os.path.samefile() 是否相同路径的文件,返回boolean
os.path.getatime() 返回最近访问时间 浮点型
os.path.getmtime() 返回上一次修改时间 浮点型
os.path.getctime() 返回文件创建时间 浮点型
os.path.getsize() 返回文件大小 字节单位
os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径
os.path.lexists #路径存在则返回True,路径损坏也返回True
os.path.expanduser(path) #把path中包含的”~”和”~user”转换成用户目录
os.path.expandvars(path) #根据环境变量的值替换path中包含的”$name”和”${name}”
os.path.sameopenfile(fp1, fp2) #判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2) #判断stat tuple stat1和stat2是否指向同一个文件
os.path.splitdrive(path) #一般用在windows下,返回驱动器名和路径组成的元组
os.path.walk(path, visit, arg) #遍历path,给每个path执行一个函数详细见手册
os.path.supports_unicode_filenames() 设置是否支持unicode路径名

1.2 errno模块

errno.EPERM (值:(int)1)无权操作 
errno.ENOENT 没有该文件或目录(2)  
errno.ESRCH 无此进程(3)  
errno.EINTR 系统调用被打断(4)  
errno.EIO I/O 错误(5)  
errno.ENXIO 无此设备或地址(6)  
errno.E2BIG 参数列表过长(7)  
errno.ENOEXEC Exec 格式错误  
errno.EBADF 文件个数出错  
errno.ECHILD 没有子进程(10)  
errno.EAGAIN 重试(11)  
errno.ENOMEM 内存不足(Out of memory)(  
errno.EACCES 访问权限不足(13)    
errno.EFAULT 地址错误(14)  
errno.ENOTBLK 需要块设备  
errno.EBUSY 设备或资源正忙  
errno.EEXIST 文件已存在  
errno.EXDEV 跨设备符号(Cross-device link)  
errno.ENODEV 没有这个设备  
errno.ENOTDIR 不是一个目录  
errno.EISDIR 这是一个目录  
errno.EINVAL 参数无效  
errno.ENFILE 文件表溢出  
errno.EMFILE 打开文件过多  
errno.ENOTTY 与文件描述符关联的不是终端  
errno.ETXTBSY 文本文件正忙  
errno.EFBIG 文件过大 
errno.ENOSPC 设备空间不足  
errno.ESPIPE Illegal seek  
errno.EROFS 只读文件系统  
errno.EMLINK 链接过多  
errno.EPIPE 管道损坏  
errno.EDOM 数学参数超过函数的值域  
errno.ERANGE数学结果不可表示  
errno.EDEADLK 资源死锁  
errno.ENAMETOOLONG 文件名过长  
errno.ENOLCK 无可用记录锁  
errno.ENOSYS 函数未实现  
errno.ENOTEMPTY 目录非空  
errno.ELOOP 太多符号链接  
errno.EWOULDBLOCK 操作将会阻塞  
errno.ENOMSG 没有目标类型的消息  
errno.EIDRM 标识符被删除  
errno.ECHRNG Channel 数越界  
errno.EL2NSYNC Level 2 未同步  
errno.EL3HLT Level 3 停止  
errno.EL3RST Level 3 重置  
errno.ELNRNG Link 数越界  
errno.EUNATCH Protocol driver not attached  
errno.ENOCSI 没有CSI 结构可用  
errno.EL2HLT Level 2 中止  
errno.EBADE 无效的 exchange  
errno.EBADR 无效的请求标识符  
errno.EXFULL exchange 已满  
errno.ENOANO No anode  
errno.EBADRQC 无效请求码  
errno.EBADSLT 无效 slot  
errno.EDEADLOCK File locking deadlock error  
errno.EBFONT 字体文件格式不合法  
errno.ENOSTR 非流设备  
errno.ENODATA 无可用数据  
errno.ETIME 定时器过期    
errno.ENOSR 无可用流资源  
errno.ENONET 机器不在网络上  
errno.ENOPKG 包未安装  
errno.EREMOTE 远程对象  
errno.ENOLINK Link has been severed  
errno.EADV 广播错误
errno.ESRMNT Srmount error  
errno.ECOMM Communication error on send  
errno.EPROTO 协议错误  
errno.EMULTIHOP 尝试进行多跳(Multihop)  
errno.EDOTDOT RFS specific error
errno.EBADMSG 不是数据消息  
errno.EOVERFLOW 值过大  
errno.ENOTUNIQ 在网络上的名称不唯一  
errno.EBADFD 文件描述字异常  
errno.EREMCHG 远程地址已变  
errno.ELIBACC 无法访问一个需要的公共库  
errno.ELIBBAD 正在访问一个受损的公共库  
errno.ELIBSCN a.out 文件中的 .lib 端受损  
errno.ELIBMAX 尝试链接太多的公共库  
errno.ELIBEXEC 无法直接执行一个公共库    
errno.EILSEQ 非法字节序  
errno.ERESTART 被打断的系统调用应该重启  
errno.ESTRPIPE 流管道错误Streams pipe error  
errno.EUSERS 用户过多  
errno.ENOTSOCK 在非套接字上进行套接字操作  
errno.EDESTADDRREQ 需要目的地地址    
errno.EMSGSIZE 消息过长  
errno.EPROTOTYPE Protocol wrong type for socket  
errno.ENOPROTOOPT 协议不可用  
errno.EPROTONOSUPPORT 协议不支持  
errno.ESOCKTNOSUPPORT 套接字类型不支持  
errno.EOPNOTSUPP Operation not supported on transport endpoint  
errno.EPFNOSUPPORT 协议族不支持  
errno.EAFNOSUPPORT 协议不支持地址族  
errno.EADDRINUSE 地址正在使用中  
errno.EADDRNOTAVAIL 无法指定请求的地址  
errno.ENETDOWN 网络已宕  
errno.ENETUNREACH 网络不可达  
errno.ENETRESET Network dropped connection because of reset  
errno.ECONNABORTED 软件造成的连接中止  
errno.ECONNRESET 连接由 peer 重置  
errno.ENOBUFS无可用缓冲空间  
errno.EISCONN Transport endpoint is already connected  
errno.ENOTCONN Transport endpoint is not connected  
errno.ESHUTDOWN Cannot send after transport endpoint shutdown  
errno.ETOOMANYREFS 引用过多: cannot splice  
errno.ETIMEDOUT 连接超时  
errno.ECONNREFUSED 拒绝连接  
errno.EHOSTDOWN 主机宕机  
errno.EHOSTUNREACH 没有到达主机的路由  
errno.EALREADY 操作已经进行  
errno.EINPROGRESS 操作现在进行    
errno.ESTALE Stale NFS file handle  
errno.EUCLEAN 结构体需要清洗   
errno.ENOTNAM 不是一个 XENIX具名文件  
errno.ENAVAIL 没有 XENIX 信号量可用  
errno.EISNAM 是一个具名文件  
errno.EREMOTEIO 远程 I/O 错误
errno.EDQUOT 超过限额

二.Python的OS及errno模块实操

自己简单的测试了OS及errno模块,涉及常用的几个场景

代码:

import os
import errnofile_path1 = 'E:/python/os_test'
file_path2 = 'E:/python/os_test/dir1'# \ 容易被当成转义字符,这个地方需要注意
file1 = 'E:/python/os_test/1.txt'# 创建目录,重复创建会报错,定义一个函数
def mkdir_p(file_path):try:os.mkdir(file_path)except OSError as exc:if exc.errno == errno.EEXIST and os.path.isdir(file_path):# print("目录 " + file_path1 + " 已存在!")passelse:print("其它错误")raisemkdir_p(file_path1)
mkdir_p(file_path2)# 改变当前目录
os.chdir('E:\python\os_test')# 打印当前工作目录
print(os.getcwd())# 列出指定目录下所有文件
for file in os.listdir(file_path1):print(file)# 改变当前目录,不然删除会报错
os.chdir('E:\python')# 删除目录,如果文件不存在也会报错,只能删除空的目录,非空目录无法删除
def rm_dir(file_path):# 判断文件目录是否为空if file_path:try:os.rmdir(file_path)except OSError as exc:if exc.errno == errno.ENOTEMPTY and os.path.isdir(file_path):print("目录 " + file_path + " 非空,请检查")else:raiseelse:print("目录没输入,请检查")rm_dir(file_path1)
rm_dir('')# 将文件路径和文件名分割(会将最后一个目录作为文件名而分离)
print(os.path.split(file_path1))
print(os.path.split(file1))# 获取文件目录  的 文件 和 目录
print(os.path.dirname(file1))
print(os.path.basename(file1))

测试记录:

E:\python\learn_python1\venv\Scripts\python.exe E:/python/learn_python1/venv/os_test1.py
E:\python\os_test
1.txt
2.txt
dir1
目录 E:/python/os_test 非空,请检查
目录没输入,请检查
('E:/python', 'os_test')
('E:/python/os_test', '1.txt')
E:/python/os_test
1.txtProcess finished with exit code 0

参考

1.https://www.cnblogs.com/jpfss/p/9686050.html
2.https://blog.csdn.net/qq_40674583/article/details/81940974
3.https://www.cnblogs.com/madsnotes/articles/5688008.html

Python常用模块2-Python的OS及errno模块相关推荐

  1. python的第三方库是干什么用的-quot;别人造好的轮子”,python常用第三方库——python自动办公7...

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 前记:这是分享和记录我个人自动化办公技能的一系列文章,意在让的小伙伴们看后能够有所帮助和长大.我们都不是专业的 ...

  2. python 苹果李子橙_Python模块知识6:OS、SYS模块

    1.os模块,和系统相关的,比如获取路径.目录.文件夹之类 常用方法: os.getcwd() #获取当前工作目录,即当前Python脚本工作的目录路径 os.rename('oldname','ne ...

  3. python中sys用法_python中os和sys模块的区别与常用方法总结

    python 的 python中os和sys模块的区别与常用方法总结 前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看 ...

  4. python常用开放工具_python学习笔记16-各种模块和开放工具收集整理

    一.调试,性能,日志 Debugger: pdb Logger: logging Profilers: profile, hotshot, cProfile 调试模块 pdb 允许你设置(条件)断点, ...

  5. python中的sys模块和os_python中os和sys模块的区别与常用方法总结

    前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 官方解释: os: This module provi ...

  6. python常用代码大全-Python常用库大全,看看有没有你需要的

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...

  7. python常用代码大全-Python常用库大全及简要说明

    环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python 版本管理工具.官网 Vex:可以在虚拟环境中执行命令.官网 v ...

  8. python常用函数库-Python常用库大全及简要说明

    环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python 版本管理工具.官网 Vex:可以在虚拟环境中执行命令.官网 v ...

  9. python常用代码大全-Python常用库大全

    Python常用库大全,看看有没有你需要的. 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具 ...

最新文章

  1. MAC OS下使用OpenSSL生成私钥和公钥的方法
  2. vscode进行远程服务器 An SSH installation couldn't be found、
  3. C++存储和处理字符串
  4. 小米平板2更新bios版本_【军团战争5.25】新版本更新预告第一弹,2级兵3次升级!...
  5. 【Spring】Spring第二天 - AOP 详解、动态代理设计模式(JDK和cglib)
  6. 计算机网络 第六章 应用层
  7. delphi7 dbgrid缓存模式下怎么判断输入重复记录_互联网公司的架构设计要怎么落地?| 技术头条...
  8. C语言求字符串并集,怎样用c语言写求集合的交集,并集,补集”这个程序?
  9. Python实现微信机器人——itchat库
  10. 考勤 指纹 php,折腾中控指纹签到SDK始末(.net监听) | quericy Eden*
  11. gif怎么分解成图片呢?
  12. 光纤交换机使用方法及应用方案详解
  13. CSS3炫酷模糊发光文字动画js特效
  14. 城市轨道交通信号系统学习笔记(三)继电器
  15. kodi 缓存文件夹_如何将Kodi图稿与视频存储在同一文件夹中
  16. 快速提高点击率的办法
  17. Python后端技术栈(八)--系统设计
  18. Spark Mllib里的分布式矩阵(行矩阵、带有行索引的行矩阵、坐标矩阵和块矩阵概念、构成)(图文详解)...
  19. torchsummary 中input size 异常的问题
  20. 百度地图经纬度计算距离(Java)

热门文章

  1. spring session搭配redis的简单使用
  2. “陌x”登录协议分析
  3. 3D建模可视化公司VR线上全景展厅
  4. 从Nginx优秀的核心架构设计,揭秘其为何能支持高并发
  5. 基于51单片机3208LED点阵电子钟C程序工程全套资料,毕业设计参考资料
  6. linux 安装cifs,在ubuntu上搭建sambd实现linux的之间的cifs通信
  7. 34寸显示器作Mac外接怎么用才最爽
  8. Signal prediction based on boosting and decision stump
  9. 吃货联盟(基于mysql)
  10. VIVADO使用技巧(1):DDR3设置DCI与内部参考电压