python pathlib相关操作
简介
python中操作文件或者文件夹的模块目前我知道的有四个,分别为os、shutil、pathlib、glob,在了解到pathlib之前,我一直使用的是os进行相关路径的操作,但在使用了pathlib,就再也回不去了。下面将介绍一下关于pathlib的常用方法或者函数以及os中与pathlib对应的方法。
常用方法
pathlib.Path(path)
获取一个路径对象,也可以将字符串转换为path对象,方便后续处理。
特殊的路径
# 获取当前文件的路径
print(pathlib.Path(__file__))
# 获取当前工作区路径
print(pathlib.Path(".").resolve())
print(pathlib.Path().resolve())
# 获取根目录的路径
print(pathlib.Path("/").resolve())
以上的resolve()代表获取路径对象的绝对路径
pathlib.Path(path).joinpath(path)
拼接路径对象,相当于os.path.join
pathlib.Path(path).relative_to(Path)
显示两个绝对路径之间的相对路径,两个路径需要处于同一文件夹或者父路径下。
pathlib.Path(path).parent
获取路径对象的父对象,相当于..
pathlib.Path(path).suffix
获取路径对象的文件后缀名,相当于os.path.splitext()
pathlib.Path(path).stem
获取路径的文件夹或者文件名称(没有后缀名)
pathlib.Path(path).exists()
判断路径对象是否存在,存在返回True,不存在返回False,相当于os.path.exists()
pathlib.Path(path).is_file()
判断路径对象是否是文件,是返回True,不是返回False,相当于os.path.isfile()
pathlib.Path(path).is_dir()
判断路径对象是否是文件夹,是返回True,不是返回False,相当于os.path.isdir()
pathlib.Path(path).rename(path)
将路径对象重命名,当存在同名文件时,不会覆盖原文件,相当于os.rename()
pathlib.Path(path).replace(path)
将路径对象重命名,当存在同名文件时,会覆盖源文件,相当于os.replace()
pathlib.Path(path).resolve()
获取路径对象的绝对路径,相当于os.path.abspath()
pathlib.Path(path).unlink()
删除当前路径对象,相当于os.remove(),os.unlink()
pathlib.Path(path).rglob(pattern)
按照一定格式获取所有的文件或者文件夹, 可以递归获取到所有层级的目录
pathlib.Path(path).iterdir()
注意:默认返回的文件是随机顺序的,但是对于很多情况下看起来是有序的,但是对于一些需要强顺序的地方,需要添加sorted()进行排序
获取路径对象中的所有文件夹或者文件,不可以递归到内部层级的目录
pathlib.Path(path).is_absolute()
当前路径对象是否是绝对路径对象
pathlib.Path(path).touch(mode=0o666, exist_ok=True):
创建文件,可以设置对于存在的是否抛出异常
pathlib.Path(path).mkdir(mode=0o777, parents=False, exist_ok=False)
创建文件夹,当需要递归创建文件夹时,只需要将parents
设置为True就可以,当父文件夹不存在时会自动创建对应文件夹
pathlib.Path(path).rmdir()
删除文件夹对象
os与pathlib对比
详细可见参考中最后 os与pathlib区别
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)