1、pathlib简介 pathlib是从python3.4版本开始提供的用于处理文件路径等的新增功能的标准库 pathlib中类的继承关系如下: pathlib和os,os.path常用的函数对应关系 2、常用场景举例 2.1、获取当
1、pathlib简介
- pathlib是从python3.4版本开始提供的用于处理文件路径等的新增功能的标准库
- pathlib中类的继承关系如下:
- pathlib和os,os.path常用的函数对应关系
2、常用场景举例
2.1、获取当前文件的绝对路径
from pathlib import Pathif __name__=="__main__":
path=Path(__file__).resolve()
print(path)
执行结果为:
G:\src\django\mysite1\mysite1\test.py2.2、获取当前文件所在的目录的绝对路径
from pathlib import Pathif __name__=="__main__":
path=Path(__file__).resolve().parent
print(path)
执行结果为:
G:\src\django\mysite1\mysite12.3、获取一个绝对路径文件的后缀
- 当文件后缀只有一个点,如xxx.doc,xxx.py等,使用如下方式
if __name__=="__main__":
path=Path("G:/src/django/mysite1/mysite1/test.py")
print(path.suffix)
执行结果如下:
.py- 当文件后缀有多个点时,如xxx.tar.gz等,此时获取后缀需要用字符串的join方法处理一下
if __name__=="__main__":
path=Path("G:/src/django/mysite1/mysite1/test.tar.gz")
print(path.suffix)
print(path.suffixes)
print("".join(path.suffixes))
执行结果如下:
.gz['.tar', '.gz']
.tar.gz
2.4、获取一个路径的上层目录,上上层目录,上上上层目录
from pathlib import Pathif __name__=="__main__":
path=Path("G:/src/django/mysite1/mysite1/test.tar.gz")
print(path.parent)
print(path.parent.parent)
print(path.parent.parent.parent)
执行结果如下:
G:\src\django\mysite1\mysite1G:\src\django\mysite1
G:\src\django
2.5、路径拼接
- 方式1:初始化Path实例的时候直接使用多个目录,如:
if __name__=="__main__":
path=Path("G:/","src/django","mysite1","mysite1","test.tar.gz")
print(path)
执行结果为:
G:\src\django\mysite1\mysite1\test.tar.gz- 方式二:使用joinpath方法
if __name__=="__main__":
path=Path("G:/src/django/mysite1")
path=path.joinpath("mysite1/test.tar.gz")
print(path)
执行结果如下:
G:\src\django\mysite1\mysite1\test.tar.gz- 方式三:直接拼接
if __name__=="__main__":
path=Path("G:/src/django/mysite1")
path=path / "mysite1/test.tar.gz"
print(path)
执行结果如下:
G:\src\django\mysite1\mysite1\test.tar.gz2.6、从文件绝对路径获取文件名
from pathlib import Pathif __name__=="__main__":
path=Path("G:/src/django/mysite1/mysite1/test.py")
print(path.name)
print(path.stem)
path = Path("G:/src/django/mysite1/mysite1/test.tar.gz")
print(path.name)
print(path.stem)
执行结果如下:可以看出stem函数目前只能在后缀只有一个点的时候好用,存在多个点的时候目前还是有问题的
test.pytest
test.tar.gz
test.tar