Python中的os库

一.OS库简介

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

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

二.OS库常用函数

2.1文件和目录

2.1.1:os.getcwd()

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

print(f"当前工作目录为:{os.getcwd()}")

 结果:

2.1.2:os.mkdir(path)

作用:

创建一个路径为path的目录

os.mkdir(f"{os.getcwd()}/zheshiyangyang")

结果:

 2.1.3:os.rmdir(path)

作用:

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

os.rmdir("666")
os.rmdir("鞠婧祎")
os.rmdir("zheshiyangyang")

效果:

2.1.4:os.chdir(path)

作用:

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

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路径下所有文件和目录名的任意顺序排列的列表。

print(os.listdir(os.getcwd()))

效果:

2.2:os.path常见路径操作

2.2.1:os.path.abspath(path)

作用:

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

print(os.path.abspath("main.py"))

效果:

2.2.2:os.path.basename(path)

作用:

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

print(os.path.basename("main.py"))

效果:

2.2.3:os.path.dirname(path)

作用:

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

print(os.path.dirname(os.getcwd()))

 效果:

2.2.4:os.path.exists(path)

作用:

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

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。

print(os.path.isabs(os.getcwd()))    #是绝对路径
print(os.path.isabs("main.py"))    #不是绝对路径

效果:

 2.2.6:os.path.isfile(path)

作用:

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

print(os.path.isfile(os.getcwd()))    #不是文件
print(os.path.isfile("main.py"))    #是文件

效果:

2.2.7:os.path,isdir(path)

作用:

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

print(os.path.isdir("鞠婧祎"))

效果:

2.2.8:os.path.normcase(path)

作用:

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

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均为空。

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为空或者英文句点开头(最多包含一个句点),且最多包含一个句点。路径前的句点将被忽略。

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

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.如果不存在以“/”或者“/”开始的参数,函数会自动加上“\”。

print(os.path.join("ab","cd","ef"))

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

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

 

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

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

print(os.path.join("abc","./sda","/cxz"))

输出:/cxz 

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

print(os.path.join("abc","./efd","sad"))

 输出:abc\./efd\sad

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是洋洋a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值