1、pathlib简介
- pathlib是从python3.4版本开始提供的用于处理文件路径等的新增功能的标准库
- pathlib中类的继承关系如下:
- pathlib和os,os.path常用的函数对应关系
2、常用场景举例
2.1、获取当前文件的绝对路径
from pathlib import Path
if __name__=="__main__":
path=Path(__file__).resolve()
print(path)
执行结果为:
G:\src\django\mysite1\mysite1\test.py
2.2、获取当前文件所在的目录的绝对路径
from pathlib import Path
if __name__=="__main__":
path=Path(__file__).resolve().parent
print(path)
执行结果为:
G:\src\django\mysite1\mysite1
2.3、获取一个绝对路径文件的后缀
- 当文件后缀只有一个点,如xxx.doc,xxx.py等,使用如下方式
from pathlib import Path
if __name__=="__main__":
path=Path("G:/src/django/mysite1/mysite1/test.py")
print(path.suffix)
执行结果如下:
.py
- 当文件后缀有多个点时,如xxx.tar.gz等,此时获取后缀需要用字符串的join方法处理一下
from pathlib import Path
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 Path
if __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\mysite1
G:\src\django\mysite1
G:\src\django
2.5、路径拼接
- 方式1:初始化Path实例的时候直接使用多个目录,如:
from pathlib import 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方法
from pathlib import Path
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
- 方式三:直接拼接
from pathlib import Path
if __name__=="__main__":
path=Path("G:/src/django/mysite1")
path=path / "mysite1/test.tar.gz"
print(path)
执行结果如下:
G:\src\django\mysite1\mysite1\test.tar.gz
2.6、从文件绝对路径获取文件名
from pathlib import Path
if __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.py
test
test.tar.gz
test.tar