Python----如何处理文件目录即pathlib模块的用法

【原文链接】Python----如何处理文件目录即pathlib模块的用法

一、pathlib简介

  • pathlib是从python3.4版本开始提供的用于处理文件路径等的新增功能的标准库

  • pathlib中类的继承关系如下:

  • pathlib和os,os.path常用的函数对应关系

二、常用场景举例

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
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值