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()

删除当前路径对象,相当于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区别

参考

pathlib文档

posted @   形同陌路love  阅读(357)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示