python中pathlib库用法详解

pathlib定义

        pathlib 是Python内置库,Python 文档给它的定义是 Object-oriented filesystem paths(面向对象的文件系统路径)。pathlib 提供表示文件系统路径的类,其语义适用于不同的操作系统。

        相对于 os 模块的 path 方法,Python3 标准库 pathlib 模块的 Path 对路径的操作会更简单。

基本用法

  • Path.iterdir()  # 遍历目录的子目录或者文件
  • Path.is_dir()  # 判断是否是目录
  • Path.glob()  # 过滤目录(返回生成器)
  • Path.resolve()  # 返回绝对路径
  • Path.exists()  # 判断路径是否存在
  • Path.open()  # 打开文件(支持with)
  • Path.unlink()  # 删除文件或目录(目录非空触发异常)

示例代码:

import pathlib

# 返回绝对路径
aa = pathlib.Path('/aaa/bbb')
bb = aa / '.' / 'ccc'
print(bb)
print(bb.resolve())

print('*' * 100)

cc = pathlib.Path('/aaa/bbb/ccc')
dd = cc / '..' / 'ddd'
print(dd)
print(dd.resolve())

print('*' * 100)

ee = pathlib.Path('/aaa/bbb/ccc')
ff = ee / '....' / 'ddd'
print(ff)
print(ff.resolve())

print('*' * 100)

gg = pathlib.Path('/aaa/bbb/ccc')
hh = gg / '../..' / 'ddd'
print(hh)
print(hh.resolve())

运行结果:

基本属性

  • Path.parts # 分割路径 类似os.path.split(), 不过返回元组
  • Path.drive # 返回驱动器名称
  • Path.root # 返回路径的根目录
  • Path.anchor # 自动判断返回drive或root
  • Path.parent # 返回所有上级目录
  • Path.parents # 返回所有上级目录的列表

示例代码:

import os
import pathlib

# 返回上一级目录
print(os.getcwd())
print(os.path.dirname(os.getcwd()))
print(os.path.dirname(os.path.dirname(os.getcwd())))
print(pathlib.Path.cwd().parent)

print('*' * 100)

# 返回所有上级目录的列表
parents = pathlib.Path.cwd().parents
for path in parents:
    print(path)

运行结果:

改变路径

  • Path.with_name() # 更改路径名称, 更改最后一级路径名
  • Path.with_suffix() # 更改路径后缀

拼接路径

  • Path.joinpath() # 拼接路径
  • Path.relative_to() # 计算相对路径

示例代码:

import os
import pathlib

# 路径拼接
print(os.getcwd())
print(os.path.join(os.path.dirname(os.getcwd()), 'aaa', 'bbb'))
paths = ('aaa', 'bbb')
print(pathlib.Path.cwd().joinpath(*paths))
print(pathlib.Path.cwd().parent.joinpath(*paths))

运行结果:

测试路径

  • Path.match() # 测试路径是否符合pattern
  • Path.is_dir() # 是否是文件
  • Path.is_absolute() # 是否是绝对路径
  • Path.is_reserved() # 是否是预留路径
  • Path.exists() # 判断路径是否真实存在

其它方法

  • Path.cwd() # 返回当前目录的路径对象
  • Path.home() # 返回当前用户的home路径对象
  • Path.stat() # 返回路径信息, 同os.stat()
  • Path.chmod() # 更改路径权限, 类似os.chmod()
  • Path.expanduser() # 展开~返回完整路径对象
  • Path.mkdir() # 创建目录
  • Path.rename() # 重命名路径
  • Path.rglob() # 递归遍历所有子目录的文件

示例代码:

import os
import pathlib

# 返回当前目录的路径对象
print(os.getcwd())
print(os.path.dirname(__file__))
print(pathlib.Path.cwd())

运行结果:

参考博文:Python使用pathlib库(IT技术)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值