专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

Python文件系统模块pathlib库怎么使用

来源:小易整编  作者:小易  发布时间:2024-03-20 08:21
摘要:一、pathlib库官方定义pathlib是python内置库,python文档给它的定义是object-orientedfilesystempaths(面向对象的文件系统路径)。pathlib提供表示文件系统路径的类,其语义适...
一、pathlib库官方定义

pathlib 是python内置库,python 文档给它的定义是 object-oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统。

Python文件系统模块pathlib库怎么使用

路径类在纯路径之间划分,纯路径提供纯粹的计算操作而没有 I / O,以及具体路径,它继承纯路径但也提供 I / O 操作。

二、pathlib秘籍

1、 基本用法

Path.iterdir() # 遍历目录的子目录或者文件

Path.is_dir() # 判断是否是目录

Path.glob() # 过滤目录(返回生成器)

Path.resolve() # 返回绝对路径

Path.exists() # 判断路径是否存在

Path.open() # 打开文件(支持with)

Path.unlink() # 删除文件或目录(目录非空触发异常) 

2、 基本属性

Path.parts # 分割路径 类似os.path.split(), 不过返回元组

Path.drive # 返回驱动器名称

Path.root # 返回路径的根目录

Path.anchor # 自动判断返回drive或root

Path.parents # 返回所有上级目录的列表

3、 改变路径

Path.with_name() # 更改路径名称, 更改最后一级路径名

Path.with_suffix() # 更改路径后缀

4、 拼接路径

Path.joinpath() # 拼接路径

Path.relative_to() # 计算相对路径

5、 测试路径

Path.match() # 测试路径是否符合pattern

Path.is_dir() # 是否是文件

Path.is_absolute() # 是否是绝对路径

Path.is_reserved() # 是否是预留路径

Path.exists() # 判断路径是否真实存在

6、 其他方法

Path.cwd() # 返回当前目录的路径对象

Path.home() # 返回当前用户的home路径对象

Path.stat() # 返回路径信息, 同os.stat()

Path.chmod() # 更改路径权限, 类似os.chmod()

Path.expanduser() # 展开~返回完整路径对象

Path.mkdir() # 创建目录

Path.rename() # 重命名路径

Path.rglob() # 递归遍历所有子目录的文件

三、os和pathlib.Path的区别

相对于 os 模块的 path 方法,Python3 标准库 pathlib 模块的 Path 对路径的操作会更简单。

1、 获取当前文件路径

使用 os 模块时,通过 getcwd() 方法可以直接获取当前文件路径

在 Pycharm 中,可以使用 os.path.dirname(__file__) 获取当前文件路径,因为 Python 并没有提供 __file__ 这个概念,他是 Pycharm 提供的:

import osprint(os.getcwd())  # C:\Users\bobin.yang\PycharmProjects\untitledprint(os.path.dirname(__file__))  # C:/Users/bobin.yang/PycharmProjects/untitled
登录后复制

在 pathlib 模块中,通过 Path.cwd() 方法可以直接获取当前文件路径,我们可以动手试一试:

import pathlibprint(pathlib.Path.cwd())  # C:\Users\bobin.yang\PycharmProjects\untitled
登录后复制

通过 Pycharm 我们可以使用快捷键 ctrl+鼠标左键 点击查看该方法的详细介绍。

从上图中可以看出 cwd() 方法不过是对 os 库中 getcwd() 方法进行了封装,看起来好像更差劲了,但是官方的推出一定不是子虚乌有的,现在让我们一起来揭秘。

2、 获取上层/上层目录

上面那个案例仿佛让 pashlib 库的使用变得更加复杂了,为了揭秘,我们只能一同感受下 pathlib 库的构成,了解 pathlib 库如何带给我们便捷。

在 os 模块中,如果我们要获取某一个文件的父目录,os 模块的写法为:

import osprint(os.path.dirname(os.path.dirname(os.getcwd())))  # C:\PycharmProjects
登录后复制

在 pathlib 库中,可以通过这样简洁方法实现:

import pathlibprint(pathlib.Path.cwd().parent)   # C:\PycharmProjects
登录后复制

并且,如果你需要找他爷爷,是不是再来一个 .parent 就行了。相比较 os 模块的 os.path.dirname() 是不是方便太多太多了?

3、 路径拼接

如果你要在他父目录中拼接路径,通过 os 模块你可能需要写这么一长串代码:

import osprint(os.path.join(os.path.dirname(os.getcwd()), '路径拼接', '真麻烦'))  # C:\PycharmProjects\路径拼接\真麻烦
登录后复制

当你使用 pathlib 的时候,我们一起来感受他的便捷之处吧!

# /Users/mac/test.pyimport ospaths = ('路径拼接', '真麻烦')print(pathlib.Path.cwd().parent.joinpath(*paths))  # C:\PycharmProjects\路径拼接\真麻烦
登录后复制

通过 pathlib 库拼接路径,你可以很方便的调节他在他祖辈的位置,妙哉。

4、 其他封装

pathlib 封装了很多的 os.path 中的方法,如下所示:

os.path.expanduser() --> pathlib.Path.home()

os.path.expanduser() --> pathlib.Path.expanduser()

os.stat() --> pathlib.Path.stat()

os.chmod() --> pathlib.Path.chmod()

四、pathlib.PurePath的使用

上一节的操作大部分都是通过 pathlib 库中的 Path 实现,其实他还有一个更加高大上的模块,也就是我们这一节的主角:pathlib.PurePath

PurePath 是一个纯路径对象,纯路径对象提供了实际上不访问文件系统的路径处理操作。

有三种方法可以访问这些类,我们也称之为 flavor 。

1、 PurePath.match

下面让我们来实现一个神奇的功能,判断当前的路径下是否有符合'*.py'规则的文件。

import pathlibprint(pathlib.PurePath(__file__).match('*.py'))  # True
登录后复制

输出为什么会是 True 呢?因为当前文件夹下不就有一个 test.py 吗?

2、 PurePath的子类:PurePosixPath(非Windows系统)、PureWindowsPath

看见 pathlib.PurePath 后面跟着 match,那是不是能说明他是个对象,而不是一个单纯的路径字符串,因此我们可以试着打印 pathlib.PurePath 看一看。

import pathlibos_path = os.path.dirname(__file__)print(os_path)  # C:/PycharmProjects/untitledpure_path = pathlib.PurePath(__file__)print(pure_path)  # C:\PycharmProjects\untitled\run.pyprint(type(pure_path))  # print(pathlib.PurePath(__file__).match('*.py'))  # True
登录后复制

通过打印 os.path 获取当前路径的结果,得到一个路径字符串;而通过 pathlib.PurePath 则获得了一个 PurePosixPath 对象,并且由此得到的路径包括了当前文件 run.py。

以上就是Python文件系统模块pathlib库怎么使用的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1151084.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • 用U盘轻松实现一键重装系统的小白装机教程

    用U盘轻松实现一键重装系统的小白装机教程

    在现代社会,电脑已经成为人们生活中不可或缺的工具。然而,由于各种原因,我们有时候需要重装电脑系统来解决一些问题或提升性能。但是,对于一些小白用户来说,重装系统可能是一项困难的任务。因此,本文将介绍一款小白一键重装系统的u盘装机教程,帮助小白...

  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • ppt中怎么插入自定义动作按钮

    ppt中怎么插入自定义动作按钮

    ppt插入自定义动作按钮: 打开幻灯片文件,然后在菜单栏中点击插入,打开插入工具栏,之后在插入工具栏中选择形状工具,如下图所示:点击形状工具后,就打开所有预置的形状列表,如下图所示,选择我们需要的形状。选择好形状后,自动退回到ppt文件编辑...

  • 主板显卡卡扣断了怎么办

    主板显卡卡扣断了怎么办

    主板显卡卡扣断了可以尝试使用胶带或胶水将其固定、更换显卡插槽、更换主板或者寻求专业人员的帮助。详细介绍:1、使用胶带或胶水将其固定,使用胶带或胶水时要小心,以免粘到其他部件上;2、更换显卡插槽,建议找专业的电脑维修人员来进行操作;3、更换主...

  • abc类ip地址怎么区分

    abc类ip地址怎么区分

    区分方法:1、a类ip地址,第一段号码为网络号码,剩下的三段号码为本地计算机的号码;2、b类ip地址,前两段号码为网络号码;3、c类ip地址,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。本教程操作环境:windows7系统、De...

  • jsp文件怎么创建

    jsp文件怎么创建

    创建jsp文件的步骤:1、安装和配置java开发环境;2、安装和配置web服务器;3、创建jsp文件;4、编写jsp代码;5、部署和运行应用程序;6、调试和测试。详细介绍:1、安装和配置java开发环境,首先需要在计算机上安装jdk,可以从...

  • win7升级错误代码80072efe该怎么办win7升级错误代码80072efe解决...

    win7升级错误代码80072efe该怎么办win7升级错误代码80072efe解决方案

    win7客户在系统更新的过程中遇到了80072efe的报错,像这种状况要怎么办呢?你先清查网络问题,然后去微软官网下载代理,假如你用的是32位计算机就免费下载32位代理,安装下载完成后马上重启。假如再次出现升级不正确得话,你也就再去官方网站...

  • git怎么合并分支代码

    git怎么合并分支代码

    git合并分支代码的方法:1、使用“gitmerge”命令,该命令用来做分支合并,可以将其他分支中的内容合并到当前分支中。2、使用“gitrebase”命令,该命令用于改变当前的分支的基点,进而实现分支合并。本教程操作环境:Window...

  • 周排行
  • 月排行
  • 年排行

精彩推荐