Python | Path 让文件路径提取变得简单(含代码)

文章目录

  • 原创声明
  • 前言
  • 一、Path 是什么?
  • 二、使用步骤
    • 1.提取文件名
    • 2.提取父文件路径
    • 3.提取文件后缀
    • 4.提取无后缀的文件名
    • 5.更改文件后缀
    • 6.遍历文件
    • 7.组合文件路径
    • 8.是否绝对路径
    • 9.是否文件夹 or 文件
    • 10.是否存在
    • 11.glob
  • 总结
    • 参考
  • 授权须知

原创声明

本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的【授权须知】,感谢您对 HinGwenWoong 文章的认可!


前言

我们在编写代码的时候经常会和文件系统做交互,但是 os.path 属于比较基础的库,我们在提取文件夹的名字、后缀或者父文件名字的时候需要经常用到 split,切割之后需要对得到的 list 进行提取,有时候得到的效果不是我们需要的,而且代码代码写得也不是特别的友好,这里我们介绍 Python3 自带的库 Path,可以让我们使用更少的代码但是与之而来的是更高的效率。

我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 ,您的点赞可以让技术传播得更远更广,谢谢!


一、Path 是什么?

该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有 I/O 的 纯路径,以及从纯路径继承而来但提供 I/O 操作的 具体路径。

Python | Path 让文件路径提取变得简单(含代码)_第1张图片
在一些用例中纯路径很有用,例如:

  • 如果你想要在 Unix 设备上操作 Windows 路径(或者相反)。你不应在 Unix 上实例化一个 WindowsPath,但是你可以实例化 PureWindowsPath。

  • 你只想操作路径但不想实际访问操作系统。在这种情况下,实例化一个纯路径是有用的,因为它们没有任何访问操作系统的操作。


二、使用步骤

1.提取文件名

方法名 : .name

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_file_name = path_str.name
print(path_file_name)

输出

demo.py

2.提取父文件路径

方法名 : .parent

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_parent_path = path_str.parent
print(path_parent_path)

输出

\user\HinGwenWoong

3.提取文件后缀

方法名 : .suffix

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_suffix = path_str.suffix
print(path_suffix)

输出

.py

4.提取无后缀的文件名

方法名 : .stem

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_only_name = path_str.stem
print(path_only_name )

输出

demo

5.更改文件后缀

方法名 : .with_suffix

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/demo.py")
path_suffix = path_str.with_suffix(".json")
print(path_suffix)

输出

\user\HinGwenWoong\demo.json

6.遍历文件

方法名 : .iterdir()

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/logs")
for path in path_str.iterdir():
    print(path)

输出

/user/HinGwenWoong/log/20210517.log
/user/HinGwenWoong/log/20210518.log
/user/HinGwenWoong/log/20210519.log
/user/HinGwenWoong/log/20210524.log
/user/HinGwenWoong/log/20210525.log

7.组合文件路径

方法名 : .joinpath

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/")
path_str_join = path_str.joinpath("demo.py")
print(path_str_join)

输出

\user\HinGwenWoong\demo.py

8.是否绝对路径

方法名 : is_absolute()

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/")
print(path_str.is_absolute())

输出

True

9.是否文件夹 or 文件

方法名 : is_dir()is_file()

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/")
print(path_str.is_dir())
print(path_str.is_file())

输出

True
False

10.是否存在

方法名 : .exists()

from pathlib import Path

path_str = Path(r"/usr/HinGwenWoong/")
print(path_str.exists())

输出

True

11.glob

方法名 : .glob

from pathlib import Path

path_str = Path(r"/user/HinGwenWoong/scripts")
print(path_str.glob('*.py'))

输出

[PosixPath('/user/HinGwenWoong/scripts/demo_1.py'), 
PosixPath('/user/HinGwenWoong/scripts/demo_2.py')]

总结

以上就是我经常使用 Path 的方法,这可以让您操作文件路径的时候更少的代码并且更高效。

我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 ,您的点赞可以让技术传播得更远更广,谢谢!


更多阅读推荐
  • Python识别二维码条形码?用pyzbar一招搞掂(含代码)
  • Python | 不会用 Python 打 tar 包?一招解决!(含代码)

参考

  • [1] pathlib — 面向对象的文件系统路径

授权须知

  1. 原创文章在推送一天后才可进行转载
  2. 转载文章,禁止声明原创
  3. 不允许直接二次转载,转载请根据原文链接联系作者
  4. 若无需改版,在文首清楚标注作者及来源/原文链接,并删除【原创声明】,即可直接转载。
    但对于未注明转载来源/原文链接的文章,我将保留追述的权利。

    作者:HinGwenWoong
    一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,共同进步!
    CSDN: HinGwenWoong
    原文链接:Python | Path 让文件路径提取变得简单(含代码)

  5. 若需要修改文章的排版,请根据原文链接联系作者
  6. 再次感谢您的认可,转载请遵守如上转载须知!

你可能感兴趣的:(Python,python)