在拜读别人的代码时,发现了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)设置一个硬连接到targetos.symlink()Path.symlink_to(target)设置一个符号连接到targetos.readlink()Path.readlink()返回之前设置的符号链接所指向的路径os.path.relpath()Path.relative_to(target)判断路径与target间是否是相对的os.stat()Path.stat(),Path.owner(), Path.group()获取此路径的一些信息
叮!
版权归原作者 你大佬来啦 所有, 如有侵权,请联系我们删除。