Python中的os库

一.OS库简介

OS是Operating System的简写,即操作系统。

OS库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数

二.OS库常用函数

2.1文件和目录

2.1.1:os.getcwd()

作用: 返回当前工作目录,结果是一个字符串

python 复制代码
print(f"当前工作目录为:{os.getcwd()}")

结果:

2.1.2:os.mkdir(path)

作用:

创建一个路径为path的目录

python 复制代码
os.mkdir(f"{os.getcwd()}/zheshiyangyang")

结果:

2.1.3:os.rmdir(path)

作用:

删除路径为path的目录,若路径不为空或者不存在,则会报错

python 复制代码
os.rmdir("666")
os.rmdir("鞠婧祎")
os.rmdir("zheshiyangyang")

效果:

2.1.4:os.chdir(path)

作用:

将工作目录改为path路径下。

python 复制代码
tmp = os.getcwd()
os.chdir("E:/zheshiyangyang")
print(f"当前工作目录为:{os.getcwd()}")
os.chdir(tmp)
print(f"当前工作目录为:{os.getcwd()}")

效果:

2.1.5:os.listdir(path)

作用:

返回path路径下所有文件和目录名的任意顺序排列的列表。

python 复制代码
print(os.listdir(os.getcwd()))

效果:

2.2:os.path常见路径操作

2.2.1:os.path.abspath(path)

作用:

返回path路径的绝对路径(标准化的),path不存在 也不会报错

python 复制代码
print(os.path.abspath("main.py"))

效果:

2.2.2:os.path.basename(path)

作用:

返回路径path的基本名称(即路径path的最末级文件

python 复制代码
print(os.path.basename("main.py"))

效果:

2.2.3:os.path.dirname(path)

作用:

返回路径pat h的目录名称(即路径path的最末级文件夹

python 复制代码
print(os.path.dirname(os.getcwd()))

效果:

2.2.4:os.path.exists(path)

作用:

判断path是否指向一个已存在的路径,存在返回True,不存在返回False。

python 复制代码
print(os.path.dirname(os.getcwd()+"/main.py"))    #文件夹存在
print(os.path.dirname(os.getcwd()+"/666.py"))    #文件不存在

效果:

2.2.5:os.path.isabs(path)

作用:

判断path是否为一个绝对路径,是返回True,不是返回False。

python 复制代码
print(os.path.isabs(os.getcwd()))    #是绝对路径
print(os.path.isabs("main.py"))    #不是绝对路径

效果:

2.2.6:os.path.isfile(path)

作用:

判断path是否为一个已存在的文件,是则返回True,不是返回False。

python 复制代码
print(os.path.isfile(os.getcwd()))    #不是文件
print(os.path.isfile("main.py"))    #是文件

效果:

2.2.7:os.path,isdir(path)

作用:

若path指向一个已存在文件夹的符号链接或者一个已存在文件夹路径,返回True,否则返回False

python 复制代码
print(os.path.isdir("鞠婧祎"))

效果:

2.2.8:os.path.normcase(path)

作用:

规范路径名称,在Windows操作系统上,将路径名称中的所有字符转为小写 ,将所有反斜杠转为斜杠 。在其它系统上,不做任何修改,返回原先的path。

python 复制代码
print(os.path.normcase("C:/6ABS/ADAS4"))

效果:

2.2.9:os.path.split(path)

作用:

将路径path拆分成**(head,tail)** ,其中head表示除去路径最后一部分外的所有内容 ,tail表示路径最后一部分

值得注意的是:

tail部分不会包含斜杠,如果path以斜杠结尾,tail将为空。

如果path中没有斜杠,head将为空。

如果path为空,则head和tail均为空。

python 复制代码
example1 = "/abc/def/haha.txt"    #一般路径
example2 = "/abc/def/"    #以斜杠结尾的路径
example3 = "main.py"    #没有斜杠的路径
example4 = ""    #空路径
example5 = "/"    #根目录

print("一般路径head={},tail={}".format(*os.path.split(example1)))
print("以斜杠结尾的路径head={},tail={}".format(*os.path.split(example2)))
print("没有斜杠的路径head={},tail={}".format(*os.path.split(example3)))
print("空路径head={},tail={}".format(*os.path.split(example4)))
print("根目录head={},tail={}".format(*os.path.split(example5)))

效果:

2.2.10:os.path.splitext(path)

作用:

将路径path产分为(A,B),其中A+B == path,B为空或者英文句点开头(最多包含一个句点),且最多包含一个句点。路径前的句点将被忽略。

简单来讲,就是拿掉文件的后缀

python 复制代码
example1 = "/abs/cdf/"     #文件夹路径
example2 = "/abs/a.b.py"     #包含多个句点的文件路径
example3 = "/abc/66.py"     #包含单个句点的文件路径
example4 = ".exam"     #以句点开头的路径
print("文件夹路径root={},ext={}".format(*os.path.splitext(example1)))
print("包含多个句点的文件路径root={},ext={}".format(*os.path.splitext(example2)))
print("包含单个句点的文件路径root={},ext={}".format(*os.path.splitext(example3)))
print("以句点开头的路径root={},ext={}".format(*os.path.splitext(example4)))

效果:

2.2.11:os.path.join(path1,path2,path3,......)

作用:

将路径拼接,具体规则如下:

1.如果不存在以"/"或者"/"开始的参数,函数会自动加上"\"。

python 复制代码
print(os.path.join("ab","cd","ef"))

2.如果存在"/"或者"\"开头的参数,则从最后一个"/"或者"\"开始拼接,之前的参数全部舍弃。

python 复制代码
print(os.path.join("abc","/cd","ef"))    #存在/
print(os.path.join("abc","\\6","ef"))    #存在\
print(os.path.join("/abc","/cd","ef"))    #存在多个/

ps**:若是从"/"开始,则"/"不会被替换为"\"**

3.如果存在"./"和"/"开头的参数,则以"/"为标准,忽略"./"。

python 复制代码
print(os.path.join("abc","./sda","/cxz"))

输出:/cxz

4.如果只存在"./"开头的参数,则从"./"开头的参数的上一个参数开始拼接。

python 复制代码
print(os.path.join("abc","./efd","sad"))

**输出:**abc\./efd\sad

相关推荐
m0_613856292 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
我的xiaodoujiao3 小时前
API 接口自动化测试详细图文教程学习系列16--项目实战演练3
python·学习·测试工具·pytest
ID_180079054733 小时前
Python 实现亚马逊商品详情 API 数据准确性校验(极简可用 + JSON 参考)
java·python·json
时空系3 小时前
第10篇:继承扩展——面向对象编程进阶 python中文编程
开发语言·python·ai编程
CHANG_THE_WORLD4 小时前
python 批量终止进程exe
开发语言·python
liann1194 小时前
3.2_红队攻击框架--MITRE ATT&CK‌
python·网络协议·安全·网络安全·系统安全·信息与通信
云天AI实战派4 小时前
AI 智能体问题排查指南:ChatGPT、API 调用到 Agent 上线失灵的全流程修复手册
大数据·人工智能·python·chatgpt·aigc
我的xiaodoujiao5 小时前
API 接口自动化测试详细图文教程学习系列15--项目实战演练2
python·学习·测试工具·pytest
多思考少编码6 小时前
PAT甲级真题1001 - 1005题详细题解(C++)(个人题解)
c++·python·最短路·pat·算法竞赛
ZhengEnCi6 小时前
M5-markconv自定义CSS样式指南 📝
前端·css·python