python pathlib的使用

本文介绍了Python的pathlib模块,它提供了PurePath和Path类,使得文件路径操作更加方便。PurePath对象可以获取路径的各个部分,如根目录、锚点、父目录、文件名、后缀等。而Path对象则增加了更多实用方法,如获取当前路径、检查文件或目录存在、遍历文件、创建和删除目录等。通过pathlib,开发者能更优雅地处理文件系统操作。
摘要由CSDN通过智能技术生成

一、背景

路径操作是我们常用的操作,常见的操作是 提取 文件名,提取路径名,给文件去除后缀等。只是单纯的使用os.path 可以满足需求,但是可能不是很方便。python官方提供了一个路径类可能更方便一些

二、 pathlib.PurePath

from pathlib import PurePath
a = '/Users/pengfei/Desktop/laji/images/train/0001000.tar'
path_obj = PurePath(a)
print(path_obj)
print(f'path_obj.parts     {path_obj.parts}\n' \
      f'path_obj.root      {path_obj.root}\n' \
      f'path_obj.anchor    {path_obj.anchor}\n' \
      f'path_obj.parent    {path_obj.parent}\n' \
      f'path_obj.parents   {path_obj.parents}\n' \
      f'path_obj.name      {path_obj.name}\n' \
      f'path_obj.suffix    {path_obj.suffix}\n' \
      f'path_obj.suffixes  {path_obj.suffixes}\n'\
      f'path_obj.stem      {path_obj.stem}\n' \
      f'path_obj.as_posix  {str(path_obj.as_posix)} \n')
path_obj.parts     ('/', 'Users', 'pengfei', 'Desktop', 'laji', 'images', 'train', '0001000.tar')
path_obj.root      /
path_obj.anchor    /
path_obj.parent    /Users/pengfei/Desktop/laji/images/train
path_obj.parents   <PurePosixPath.parents>
path_obj.name      0001000.tar
path_obj.suffix    .tar
path_obj.suffixes  ['.tar']
path_obj.stem      0001000
path_obj.as_posix  <bound method PurePath.as_posix of PurePosixPath('/Users/pengfei/Desktop/laji/images/train/0001000.tar')> 

三、pathlib.Path

from pathlib import Path
p = Path(file)
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文件后缀
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值