如何解决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直接赋值与浅拷贝和深拷贝实例讲解使用

    Python直接赋值与浅拷贝和深拷贝实例讲解使用

    浅拷贝,指的是重新分配一块内存,创建一个新的对象,但里面的元素是原对象中各个子对象的引用。深拷贝,是指重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。因此,新对象和原对象没有任何关联
    2022-11-11
  • Python自定义函数的创建、调用和函数的参数详解

    Python自定义函数的创建、调用和函数的参数详解

    这篇文章主要介绍了Python自定义函数的创建、调用和函数的参数、变量作用域等常见问题,需要的朋友可以参考下
    2014-03-03
  • python+pytest自动化测试函数测试类测试方法的封装

    python+pytest自动化测试函数测试类测试方法的封装

    这篇文章主要介绍了python+pytest自动化测试函数测试类测试方法的封装,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • OpenCV 读取图像imread的使用详解

    OpenCV 读取图像imread的使用详解

    这篇文章主要介绍了OpenCV 读取图像imread的使用详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-09-09
  • Python应用之利用pyecharts画中国地图

    Python应用之利用pyecharts画中国地图

    这篇文章主要介绍了Python应用之利用pyecharts画中国地图,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Python3爬虫使用Fidder实现APP爬取示例

    Python3爬虫使用Fidder实现APP爬取示例

    这篇文章主要介绍了Python3爬虫使用Fidder实现APP爬取示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • 利用Python做一个电脑通知小工具

    利用Python做一个电脑通知小工具

    Windows不是有个消息通知功能,挺喜欢这个功能的,但是不太方便使用,也懒得去研究,于是准备用Python自己写一个,感兴趣的可以了解一下
    2022-12-12
  • python transpose()处理高维度数组的轴变换的实现

    python transpose()处理高维度数组的轴变换的实现

    本文主要介绍了python transpose()处理高维度数组的轴变换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • Python利用PyAutoGUI轻松搞定图片上传

    Python利用PyAutoGUI轻松搞定图片上传

    PyAutoGUI作为一个GUI操作的神器,我们看到了它的操作都很简单,非常通俗易懂,基本上看到函数就能知道它的功效。本文将用它实现图片上传功能,感兴趣的可以了解一下
    2022-09-09
  • Python pass函数使用及其应用的详解

    Python pass函数使用及其应用的详解

    Python中,pass是一种空语句,即不做任何事情,只起到占位符的作用,本文主要介绍了Python pass函数使用及其应用的详解,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论