如何解决Python读取图片路径存在转义字符的问题

 更新时间:2023年07月24日 10:37:03   作者:夏天是冰红茶  
这篇文章主要为大家详细介绍了如何解决Python读取图片路径时存在转义字符的问题,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下

普遍解决路径中存在转义字符的问题的方法

普遍解决转义字符的问题,无非是以下这三种。

1.在路径前添加r

直接在路径前面加r,这种方法能够使字符保持原始的意思。

比如下面这种:

path=r"D:\MindSpore\Dearui\source\ces\0AI.png"

2.将反斜杠“\”替换为正斜杠

path="D:\MindSpore\Dearui\source\ces/0AI.png"

3.将反斜杠“\”替换为双反斜杠“\\”

path="D:\\MindSpore\\Dearui\\source\\ces\\0AI.png"

使用os来读取图片的路径

这里我们采用了os来连接文件夹名与文件名。

具体方法如下:

paths=r"D:\MindSpore\Dearui\source\ces"
imgfile = []
file_list = os.listdir(paths)
for i in file_list:
    newph = os.path.join(paths, i)
    imgfile.append(newph)
print(imgfile)

最后我们先直接打印出这个列表。

['D:\\MindSpore\\Dearui\\source\\ces\\0AI.png', 'D:\\MindSpore\\Dearui\\source\\ces\\AI2.png', 'D:\\MindSpore\\Dearui\\source\\ces\\AI3.png']

这里在用os时,可以看见是自动采用的是双反斜杠,有效规避了转义字符,但这里有涉及到了列表读取机制的问题。

for f in imgfile:
    print(f)

一般我们是通过for循环这种方式来获取列表中的图片路径,然而这里却并非如我所想。

D:\MindSpore\Dearui\source\ces\0AI.png
D:\MindSpore\Dearui\source\ces\AI2.png
D:\MindSpore\Dearui\source\ces\AI3.png

使用for循环读取,竟然将双反斜杠变为了单斜杠,这也就导致了读取路径中存在了转义字符,这里面可能涉及到读取机制的问题,具体是什么这里就不探究了,下面我们来说下解决方案。

本文采取的方法

索性的是通过os,我们获得的路径是双反斜杠,毕竟连'\'这种都属于是转义字符,我们还真没什么办法对它进行变化。

newph = os.path.join(paths, i).replace("\\","/")

这样修改就可以完成对转义字符的修改,并且通过for循环打印出来的值也是符合条件的。

for循环打印:

D:/MindSpore/Dearui/source/ces/0AI.png
D:/MindSpore/Dearui/source/ces/AI2.png
D:/MindSpore/Dearui/source/ces/AI3.png

列表打印:

['D:/MindSpore/Dearui/source/ces/0AI.png', 'D:/MindSpore/Dearui/source/ces/AI2.png', 'D:/MindSpore/Dearui/source/ces/AI3.png']

此函数也被我收录进了pyzjr中,需要下载0.0.19版本之后才可见。

pip install pyzjr==0.0.19
def getPhotopath(paths):
    """
    * log:0.0.19以后修改了一个比较大的bug,使用os读取的路径是“\\”,本来是没有问题的,
    但如果使用列表循环读取,居然变成了单斜杠。
    * 功能:批量读取文件夹下的图片路径
    :param paths: 文件夹路径
    :return: 包含图片路径的列表
    """
    imgfile = []
    file_list = os.listdir(paths)
    for i in file_list:
        if i[0] in ['n', 't', 'r', 'b', 'f'] or i[0].isdigit():
            print(f"Error: 文件名 {i} 开头出现错误!")
        newph = os.path.join(paths, i).replace("\\","/")
        imgfile.append(newph)
    return imgfile

这里我添加了提示,可以指出可能是哪个文件出错了,便于后续问题的查找,能够手动修改的,其实是最后的,但如果你执意要用也是没有任何问题的。

到此这篇关于如何解决Python读取图片路径存在转义字符的问题的文章就介绍到这了,更多相关Python读取图片路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中enumerate函数代码解析

    Python中enumerate函数代码解析

    这篇文章主要介绍了Python中enumerate函数代码解析,涉及函数说明以及相关示例,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Python个人博客程序开发实例信息显示

    Python个人博客程序开发实例信息显示

    这篇文章主要介绍了怎样用Python来实现一个完整的个人博客系统,我们通过实操上手的方式可以高效的巩固所学的基础知识,感兴趣的朋友一起来看看吧
    2022-12-12
  • python中的round()函数用法详解

    python中的round()函数用法详解

    这篇文章主要给大家介绍了关于python中round()函数用法的相关资料,round()函数是Python内置函数之一,用于对数字进行四舍五入操作,需要的朋友可以参考下
    2023-08-08
  • Python-ElasticSearch搜索查询的讲解

    Python-ElasticSearch搜索查询的讲解

    今天小编就为大家分享一篇关于Python-ElasticSearch搜索查询的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Python中django学习心得

    Python中django学习心得

    这篇文章主要介绍了Python中django Web应用框架的学习做了总结并把心得体会写了一下,大家一起参考下吧。
    2017-12-12
  • CentOS 7下安装Python3.6 及遇到的问题小结

    CentOS 7下安装Python3.6 及遇到的问题小结

    这篇文章主要介绍了CentOS 7下安装Python3.6 及遇到的问题小结,需要的朋友可以参考下
    2018-11-11
  • python+numpy按行求一个二维数组的最大值方法

    python+numpy按行求一个二维数组的最大值方法

    今天小编就为大家分享一篇python+numpy按行求一个二维数组的最大值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • pytorch通过自己的数据集训练Unet网络架构

    pytorch通过自己的数据集训练Unet网络架构

    Unet是一个最近比较火的网络结构。它的理论已经有很多大佬在讨论了。本文主要从实际操作的层面,讲解如何使用pytorch实现unet图像分割
    2022-12-12
  • python执行get提交的方法

    python执行get提交的方法

    这篇文章主要介绍了python执行get提交的方法,实例分析了Python通过get传递数据的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • Python根据给定模型计算权值

    Python根据给定模型计算权值

    在机器学习和深度学习中,模型的权值(或参数)通常是通过训练过程(如梯度下降)来学习和调整的,本文将使用TensorFlow和PyTorch根据给定模型计算权值,感兴趣的可以了解下
    2024-11-11

最新评论