我们在前面学习对文件路径操作的os.path模块和pathlib模块,不熟悉的小伙伴可以前往学习一下。
pathlib 模块从 python3.4 开始,到 python3.6 已经比较成熟。
对比老式的 os.path,pathblib有几个优势:
1. 传统操作导入模块不统一。 既可以导入 os,又可以导入 os.path,而新的用法统一可以用 pathlib 管理。
2. 传统操作在不同操作系统之间切换麻烦。 换了操作系统常常要改代码,还经常需要进行一些额外操作。
3. 返回的数据类型不同。
(1)传统主要是函数形式,返回的数据类型通常是字符串。
(2)但是路径和字符串并不等价,所以在使用 os 操作路径的时候常常还要引入其他类库协助操作。
(3)Pathlib模块是面向对象,处理起来更灵活方便。
4. pathlib 简化了很多操作,用起来更轻松
本期,我们将学习一下,Pathlib模块与os模块方法进行对比学习,看看同样操作,os模块与Pathlib模块方法的差异点
🎵🎵废话不多说,我们来学习pathlib模块与os模块相关方法的对比吧,Let's go~
1. 获取当前路径方式
👉os模块: 使用os.getcwd()函数方法来获取当前路径
import os.path Os = os.getcwd() print("Os 路径为:",Os)
👉pathlib模块: 使用具体路径Path对象调用cwd()方法来获取当前路径
import pathlib Pa = pathlib.Path() print("Pa 路径",Pa.cwd())
2. 获取上级/上上级目录
文件目录结构展示图:
👉os模块: 使用os.path.dirname来嵌套调用获取上级及上上级目录路径
import os.path print("os.path模块获取上层目录:",os.path.dirname(os.getcwd())) print("os.path模块获取上上层目录:",os.path.dirname(os.path.dirname(os.getcwd())))
👉pathlib模块: 使用Path/PurePath对象调用parent属性来获取符级目录
import pathlib Pa = pathlib.Path() print("pathlib获取上层目录:",Pa.cwd().parent) print("pathlib获取上上层目录:",Pa.cwd().parent.parent)
3. 拼接目录
👉os模块: 使用join()方法嵌套调用dirname()方法。层层调用,不易阅读
import os.path print("os,path模块拼接路径:",os.path.join(os.path.dirname(os.getcwd()),"New","test1.txt"))
👉pathlib模块: 使用parent属性后调用join()连接相关路径,简洁明了
import pathlib Pa = pathlib.Path() paths = ["New","test1.txt"] print("pathlib模块路径拼接:",Pa.cwd().parent.joinpath(*paths))
4. 创建文件夹并重命名
👉os模块: 创建多个层级下的文件名字,需要写复杂的嵌套
import os.path # 创建 JueJin/Test目录 os.makedirs(os.path.join('JueJin', 'Test'), exist_ok=True) # 将test.txt重命名为 JueJin/Tests.txt os.rename('test.txt', os.path.join('JueJin', 'Tests.txt'))
👉pathlib模块: Path对象可以直接创建对应目录下,无需写嵌套式调用
import pathlib # 创建 JueJin/Test目录 pathlib.Path("JueJin/Test").mkdir(parents=True,exist_ok=True) # 将test.txt重命名为 JueJin/Tests.txt pathlib.Path("test.txt").rename("Juejin/Tests.txt")
5. Pathlib方法图解
网传很火的一张Pathlib模块方法汇总图,简单直观,大家学习的时候可以看一下
6. os.path和pathlib对照表
总结
本期,我们学习Pathlib模块 与 os.path模块对操作系统路径操作方法进行对比差异
pathlib 模块较于os.path 模块提供的方法更加简单方便,提高我们代码简单和可维护
如果你的新项目可以直接用 3.6 以上,建议用 pathlib。
以上是本期内容,欢迎大佬们点赞评论指正,下次见~ღ( ´・ᴗ・` )比心🌹🌹🌹🌹🌹✈️
作者:盆友圈的小可爱
链接:https://juejin.cn/post/6995877661222371359
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。