python模块之pathlib的使用介绍,用于解决路径相关问题,功能与os.path类似,但是使用更为方便

python模块之pathlib的使用介绍,用于解决路径相关问题,功能与os.path类似,但是使用更为方便_第1张图片

在拜读别人的代码时,发现了pathlib这个模块的使用,其能够将路径字符串转化为路径对象,在路径对象中,也包含了很多有用的方法供我们调用,其与os.path的功能几乎无差,但是由于直接将路径变为对象,直接使用对象本身的方法就能够完成很多变换的功能,同时其也是默认安装在python3较新的版本中的,因此可以说是十分便捷了。

本文将简要介绍pathlib的基本使用方式,以及其中与os.path中方法的对应。

文章目录

  • Purepath类
  • Path类
  • 叮!


Purepath类

pathlib中主要有两个类,PurePath和Path,这两个类分别负责对文本形式的路径的处理(即PurePath类处理的路径只是文本形式的,都是将路径字符串进行各种变换或组合的方法,并没有判断真实路径的方法)和对真实存在的路径进行处理(可以判断文件是否真实存在,以及对真实路径进行处理等)。

先介绍一下PurePath类,此类相对较为简单,其在windows系统和linux系统中分别拥有不同的子类即PureWindowsPath和PurePosixPath,这是因为windows和linux系统的路径表示形式不同。

from pathlib import Purepath

p1 = Purepath('C://Windows', 'some/path', 'bar')
# 生成了实例 :PureWindowsPath('C:/Windows/some/path/bar')
# 这里生成实例的方法就不多举例了,实际上就是此方法能将一些字符组合为当前系统下正确的一些路径
# 但并不保证此路径一定存在

# Purepath也具有一些方法,如root获取字符串中的根路径,获取文件名(base),match用于与通配符匹配,
# parents获取文件所处目录,driver获取盘符(如C:),parts将路径通过斜杠进行划分,
# isabsolute判断是不是绝对路径,但要注意这些方法都只是对类实例结果进行
# 处理判断,并不会与真实文件或目录进行匹配。
# 这些方法这里也不单独介绍了。

Path类

Path类实际上是Purepath的子类,但其具有的功能更为强大,这里将常用的方法与os的方法对比并列为列表(参考官方文档),但要注意两种方法的结果可能并不完全一样,在调用时需要先尝试看看结果:

os和os.path pathlib 方法功能介绍
os.path.abspath() Path.resolve() 返回任意路径的绝对路径
os.chmod() Path.chmod() 修改文件权限
os.makedirs(),os.mkdir() Path.mkdir() 直接创建文件夹,若已存在那么会报错
os.rename() Path.rename() 重命名文件或文件夹
os.replace() Path.replace() 重命名文件或文件夹
os.rmdir() Path.rmdir() 移除目录
os.remove(),os.unlink() Path.unlink() 移除文件或符号链接
os.getcwd() Path.cwd() 获取当前的工作目录
os.path.exists() Path.exists() 判断路径是否真实存在
os.path.expanduser() Path.expanduser() 和 Path.home() 将例如~符号这样的符号转换为当前user,就变为了/home/user/work这样的目录结构
os.listdir() Path.iterdir() 获取当前目录下的文件及目录,但是这里是iter对象
os.path.isdir() Path.is_dir() 判断是否为目录
os.path.isfile() Path.is_file() 判断是否为文件
os.path.islink() Path.is_symlink() 判断是否有符号链接
os.link() Path.hardlink_to(target) 设置一个硬连接到target
os.symlink() Path.symlink_to(target) 设置一个符号连接到target
os.readlink() Path.readlink() 返回之前设置的符号链接所指向的路径
os.path.relpath() Path.relative_to(target) 判断路径与target间是否是相对的
os.stat() Path.stat(),Path.owner(), Path.group() 获取此路径的一些信息

叮!

参考:https://docs.python.org/zh-cn/3/library/pathlib.html

你可能感兴趣的:(python,python)