这是我参与8月更文挑战的第12天,活动详情查看: 8月更文挑战
复习回顾
Python对文件I/O操作的相关模块,我们前面已经学习一些内容
在以上的模块中,我们对文件/目录操作有了一定地掌握,开始学习之前我们先来巩固一个小知识点 (⚠️:如果小伙伴们对绝对路径和相对路径熟悉的话,可以直接跳过看)
🌟小知识:绝对路径和相对路径
-
绝对路径:总是从根文件夹开始
(1)Window 系统中以盘符(C:、D:)作为根文件夹,
(2)OS X 或者 Linux 系统中以 / 作为根文件夹。
-
相对路径:指的是文件相对于当前工作目录所在的位置。
(1).\ 表示当前所在目录
(2)..\ 表示当前所在目录的父目录
🎵🎵废话不多说,我们来学习pathlib模块相关的知识吧,Let's go~
1. pathlib模块概述
pathlib 模块提供了一组文件系统路径的类,其语义适用于不同的操作系统。
pathlib 模块提供相关类的关系图如下:
🔔 剪头连接的是表示有继承关系。例如PurePath是PurePosixPath和PureWindowsPath的父类
📢重要说明:
-
pathlib模块主要是有两个主要的类Purepath(纯路径)和Path(具体路径)
-
PurePath类对路径看成是一个普通的字符串。
(1)可以连接多个字符串拼接成当前系统的路径格式
(2)可判断任意两个路径是否相等
(3)PurePath只操作路径,路径的真实性不做判断
(4)PurePath有两个子类,PurePosixPath类用于操作UNIX(MAC OS)系统的路径,PurewindowsPath类用于操作Windows系统的路径
-
Path类对真实路径进行操作。
(1) Path类提供了判断路径是否存在的方法
(2) Path也有两个子类,PosixPath类用于操作UNIX(MAC OS)系统的路径,WindowsPath类用于操作Windows系统的路径
-
purepath 和 Path 最根本区别在于
(1) purepath 的本质依然是字符串
(2) path 则会真正访问底层的文件路径,因此它提供来属性和方法来访问底层的文件系统的方法
🔔 UNIX系统路径格式: 根路径是斜杠(/),路径分隔符也是斜杠(/);Windows系统路径格式:系统根路径是盘符(如C:),分隔符是反斜杠(\)
2. Pathlib模块相关方法
Pathlib 模块提供PurePath、Path以及它们的子类,共六个类模块
类 | 作用 |
---|---|
Pathlib.PurePath | 纯路径,代表当前系统的路径格式 |
Pathlib.PurePosixPath | 纯路径的子类,用于UNIX系统 |
Pathlib.PureWindowsPath | 纯路径的子类,用于Windows系统 |
Pathlib.Path | 纯路径的子类,对真实路径进行操作 |
Pathlib.PosixPath | Path和PurePosixPath的子类,用于UNIX系统 |
Pathlib.WindowsPath | Path和PureWindowsPath的子类,用于Windows系统 |
📣 PuerPath类提供主要实例方法/属性如下:
方法/属性 | 作用 |
---|---|
PurePath.drive | 返回路径字符串中的驱动器盘符。 |
PurePath.root | 返回路径字符串的根路径 |
PurePath.anchor | 返回路径字符串的盘符和根路径 |
PurePath.parents | 返回当前路径全部父路径 |
PurePath.name | 返回当前路径的文件名 |
PurePath.suffixes | 返回当前路径中的文件扩展名列表 |
PurePath.suffix | 返回当前文件扩展名 |
PurePath.as_posix() | 切换成UNIX系统路径格式(斜杠) |
PurePath.as_uri() | 当前路径转换成URL。只支持绝对路径 |
PurePath.is_absolute() | 判断是否为绝对路径 |
PurePath.joinpath(*other) | 将多个路径链接在一起(斜杠/连接符) |
PurePath.match(pattern) | 判断当前路径是否匹配指定通配符。 |
PurePath.relative_to(*other) | 计算路当前径相对other的路径结果 |
PurePath.with_name(name) | 将当前路径中的文件名替换成新文件名。如果当前路径中没有文件名,则会引发 ValueError。 |
PurePath.with_suffix(suffix) | 将当前路径中的文件后缀名替换成新的后缀名。如果当前路径中没有后缀名,则会添加新的后缀名。 |
📣 Path类提供主要实例方法/属性如下:
方法 | 作用 |
---|---|
Path.cwd() | 返回当前目录路径 |
Path.stat() | 返回路径的相关信息 |
Path.chmod() | 改变文件的模式和权限 |
Path.exists() | 文件路径是否存在 |
Path.mkdir() | 新键给路径的目录 |
Path.glob(pattern) | 给定符号进行解析路径 |
Path.group() | 返回文件的用户组 |
Path.is_dir() | 路径是否是目录 |
Path.is_file() | 判断路径是否指向文件 |
Path.is_mount() | 判断路径是否已挂载,只支持UNIX系统 |
Path.is_symlink() | 判断路径是否指向符号链接 |
3. 小试牛刀
pathlib模块提供比os.path 更简单易用的方法去操作路径,本次我们来实操一下:
import pathlib
# purepath
Pure = pathlib.PurePath('f:\JueJin\juejin.txt')
print("purepath:",Pure)
print("Pure root:",Pure.root)
print("Pure Parents:",Pure.parents)
print("Pure 扩展名:",Pure.suffixes)
print("Pure type:",type(Pure))
Pa = pathlib.Path("f:\JueJin\juejin.txt")
print("Path:",Pa)
print("Pa root:",Pa.root)
print("Pa parents:",Pa.parents)
print("Pa 扩展名:",Pa.suffixes)
print("Pa type:",type(Pa))
# Path 多了一些判断路径的方法
print("pa exists:",Pa.exists())
print("Pa is_dir:",Pa.is_dir())
print("Pa is_file:",Pa.is_file())
总结
本期,我们学习Pathlib模块对各种操作系统中使用的路径操作,重点有两点:
- PurePath纯路径将路径当着一个普通的字符串,只用来操作路径,不判断路径的真实性
- path类提供判断路径是否真实有效的方法
如果在工作项目需要迁移多系统的,在需要对文件路径进行操作的,我们可以使用pathlib模块,方便简洁,易于项目维护。
以上是本期内容,欢迎大佬们点赞评论指正,下次见~ღ( ´・ᴗ・` )比心🌹🌹🌹🌹🌹✈️