文章目录
原创声明
本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的【授权须知】,感谢您对 HinGwenWoong 文章的认可!
前言
我们在编写代码的时候经常会和文件系统做交互,但是 os.path
属于比较基础的库,我们在提取文件夹的名字、后缀或者父文件名字的时候需要经常用到 split
,切割之后需要对得到的 list
进行提取,有时候得到的效果不是我们需要的,而且代码代码写得也不是特别的友好,这里我们介绍 Python3
自带的库 Path
,可以让我们使用更少的代码但是与之而来的是更高的效率。
我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 👍 ,您的点赞可以让技术传播得更远更广,谢谢!
一、Path 是什么?
该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有 I/O 的 纯路径,以及从纯路径继承而来但提供 I/O 操作的 具体路径。
在一些用例中纯路径很有用,例如:
-
如果你想要在 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,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 👍 ,您的点赞可以让技术传播得更远更广,谢谢!
参考
授权须知
- 原创文章在推送一天后才可进行转载
- 转载文章,禁止声明原创
- 不允许直接二次转载,转载请根据原文链接联系作者
- 若无需改版,在文首清楚标注作者及来源/原文链接,并删除【原创声明】,即可直接转载。
但对于未注明转载来源/原文链接的文章,我将保留追述的权利。作者:HinGwenWoong
一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,共同进步!
CSDN: HinGwenWoong
原文链接:Python | Path 让文件路径提取变得简单(含代码) - 若需要修改文章的排版,请根据原文链接联系作者
- 再次感谢您的认可,转载请遵守如上转载须知!