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)
打印返回
一些常用的方法如下
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)
打印
我们如果还需要同时过滤多种后缀的文件,例子如下
#!/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)
打印返回