python中pathlib模块的使用方法

pathlib相对于os模块中的path更简洁,同时这个模块也是python内置模块,我们可以直接使用,下面我们来看看使用方法,使用起来也很简单

#!/usr/bin/env python3
#coding:utf-8
from pathlib import Path

work_dir = r'D:\\cmder\\Cmder.exe'
p = Path(work_dir)
print(p.name)
print(p.stem)
print(p.suffix)
print(p.parent)
print(p.parent.parent.parent)
for i in p.parents:
    print(i)
print(p.parts)

打印返回

微信截图_20220422164621.png

一些常用的方法如下

Path.cwd()            # 获取当前工作路径
Path.home()           # 获取当前的用户环境目录
Path(__file__)       # 针对当前文件构建一个路径对象-WindowsPath
p.parent                 # 获取上级路径
p.joinpath(str)          # 获取子路径   等价于   file_path / str
p.glob(filename)         # 返回路径下所有符合filename格式(例如‘*.txt'的文件,返回迭代器
p.rglob(filename)        # 与glob类似,但是它范围所有子文件夹的符合filename的文件
p.iterdir()         # 当path为文件夹时,通过yield产生path文件夹下的所有文件、路径的迭代器
p.name                   # 获取path的文件名
p.suffix                 # 获取文件后缀
p.stem                   # 文件名不带后缀
p.is_dir()               # 是否为文件夹
p.is_file()              # 是否为文件
p.stat()                 # 获取文件信息
p.stat().st_size         # 文件的字节大小
p.stat().st_ctime        # 文件创建时间
p.stat().st_mtime        # 上次修改文件的时间
p.mkdir(parents=False)   # 创建文件夹,当parents为True时依次创建路径中间缺少的文件夹
p.rmdir()                # 当路径为空文件夹的时候,删除该文件夹,等价于os.rmdir()
p.rename(target)         # 当target为str时,重命名文件或文件夹,当target是Path时,重命名并移动文件
p.replace(target)        # 重命名当前文件或文件夹,如果target所指示的文件已存在,则覆盖原文件

下面来一个获取目录下所有png图片的例子

#!/usr/bin/env python3
#coding:utf-8
from pathlib import Path

work_dir = r"D:\\test_file"
p = Path(work_dir)
file_name = p.glob("**/*.png")
for i in file_name:
    print(i)

打印

微信截图_20220422170207.png

我们如果还需要同时过滤多种后缀的文件,例子如下

#!/usr/bin/env python3
#coding:utf-8
from pathlib import Path

work_dir = r"D:\\test_file"
p = Path(work_dir)
all_file = []
for i in [".png", ".py"]:
    file_name = p.glob(f'**/*{i}')
    all_file.extend(file_name)

for item in all_file:
    print(item)

打印返回

微信截图_20220422170726.png

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/833.html