一、 pathlib中的Path库简介
Path将文件或者文件夹路径(str)转换为Path对象, 可以实现不同OS路径连接符问题不同、以及对该路径的其他操作,如判断是否为文件、文件夹,根据路径创建创建文件夹(包括是否递归创建缺少的文件夹)等。
二、 常用的使用方法
1. 忽略不同os连接不同的问题
from pathlib import Path
some_path = 'D:/CodeFiles//server_detection\\datasets\M6_service_data_1020'
p = Path(some_path)
p = p / 'Images'
print(p) # WindowsPath('D:/CodeFiles/server_detection/datasets/M6_service_data_1020/Images')
print(str(p)) #'D:\\CodeFiles\\server_detection\\datasets\\M6_service_data_1020\\Images'
当然也可以用os.path.join()
, 也可以配合使用连接文件分隔符使用,str(p) + os.sep
2. 获取路径下符合自己所设定条件的文件,如.jpg,.txt等文件
# 这个返回的是一个迭代器,需要配合 for循环拿出里面全部的值
p.glob('*.jpg')
# 当然也可以使用 import glob.glob这个库
3. 其他使用方法
p.cwd() # 获取当前路径
p.stat() # 获取当前文件的信息
p.exists() # 判断当前路径是否是文件或者文件夹
p.glob(filename) # 获取路径下的所有符合filename的文件,返回一个generator
p.rglob(filename) # 与上面类似,只不过是返回路径中所有子文件夹的符合filename的文件
p.is_dir() # 判断该路径是否是文件夹
p.is_file() # 判断该路径是否是文件
p.iterdir() #当path为文件夹时,通过yield产生path文件夹下的所有文件、文件夹路径的迭代器
P.mkdir(parents=Fasle) # 根据路径创建文件夹,parents=True时,会依次创建路径中间缺少的文件夹
p_news = p/'new_dirs/new_dir'
p_news.mkdir(parents=True)
P.open(mode=’r’, buffering=-1, encoding=None, errors=None, newline=None) #类似于open()函数
p.rename(target) # 当target是string时,重命名文件或文件夹;当target是Path时,重命名并移动文件或文件夹
p.replace(target) # 重命名当前文件或文件夹,如果target所指示的文件或文件夹已存在,则覆盖原文件
p.parent(),p.parents() # parent获取path的上级路径,parents获取path的所有上级路径
p.is_absolute() # 判断path是否是绝对路径
p.match(pattern) # 判断path是否满足pattern
p.rmdir() # 当path为空文件夹的时候,删除该文件夹
p.name # 获取path文件名
p.suffix # 获取path文件后缀