使用 Opencv and OS or pathlib.Path 获取路径名称和图像名称,并保存图像到指定路径

 os.path 和 pathlib.Path 相似,但是后者简化了很多操作,有很多前者没有的优点。

(1)os 库

os 模块提供了非常丰富的方法用来处理文件和目录。

Python基础教程,链接直达:Python OS 文件/目录方法 | 菜鸟教程 (runoob.com)

其中,os.path() 模块使用频率最高,通常用来获取文件的属性,里面有很多函数,本文仅此介绍:

  • os.path.join()   # 路径合成
  • os.path.split()  # 路径分割

(2)pathlib.Path 模块

该模块提供了表示文件系统路径的类,这些类具有适用于不同操作系统(Window、Linux、macOS)的语义。

获取绝对路径或者相对路径的组成部分

  • # .name 文件名,包含后缀名,如果是目录则获取目录名
  • # .stem 文件名,不包含后缀
  • # .suffix 图像后缀(格式)
  • # .parent 父级目录
  • # .parents 所有的父级目录
  • # .anchor 锚,目录前面的部分,绝对路径(C:\)或者相对路径(/)

 (3)代码示例(含注释)

import os
import cv2
from pathlib import Path

files_path = "demo1"
out_path = "demo_out/"

# 遍历所有文件
files = os.listdir(files_path)
for i, file in enumerate(files):
    print(file)

    img = os.path.join(files_path, file)  # 把目录和文件名合成一个路径
    image = cv2.imread(img)

    # image = cv2.imread("{}/{}".format(files_path, str(file)))

    cv2.imwrite(out_path + file, image)

image_path = r"G:\CSDN\python\Office_skills\path\demo1\1.png"

# 把路径分割成 dirname 和 basename,返回一个元组
split_path = os.path.split(image_path)
print(split_path)

# .name 文件名,包含后缀名,如果是目录则获取目录名
# .stem 文件名,不包含后缀
# .suffix 图像后缀(格式)
# .parent 父级目录
# .parents 所有的父级目录
# .anchor 锚,目录前面的部分,绝对路径(C:\)或者相对路径(/)
path = Path(image_path)
print(type(path))
print(path)
print(path.name)
print(path.stem)
print(path.suffix)
print(list(path.parents))  # 列表形式
print(path.anchor)

# 读取并保存图像
image1 = cv2.imread(image_path)
save_path = out_path + path.name
cv2.imwrite(save_path, image1)

  >>>路径结构: 

   >>>如有疑问,欢迎评论区一起探讨

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Flying Bulldog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值