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

本文介绍了Python的pathlib模块,该模块提供PurePath和Path类,用于处理文本路径和真实路径。PurePath主要进行路径字符串的组合和变换,而Path类则能检查路径是否存在并执行文件系统操作。通过Path类,可以方便地实现文件和目录的创建、重命名、删除等操作,且其方法与os.path类似。了解pathlib可以帮助提升Python文件操作的效率和代码可读性。
摘要由CSDN通过智能技术生成

在这里插入图片描述

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

本文将简要介绍pathlib的基本使用方式,以及其中与os.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.pathpathlib方法功能介绍
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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值