Python读取中文路径出现乱码的问题解决

 更新时间:2024年06月26日 08:58:48   作者:独不懂  
本文主要介绍了Python读取中文路径出现乱码的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、问题描述

笔者在使用opencv读取带有中文路径的图片时,发现会出现乱码的情况。具体问题如下:

# 读取带有中文路径的图片出现错误
import cv2

img_path = r'C:\Users\zephy\Documents\Python\CSDN\测试 图片\图片1.jpg'
img = cv2.imread(img_path, cv2.IMREAD_COLOR)

cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

当读取的文件路径出现中文时,(文件夹名为中文或者文件为中文)出现如下错误:

[ WARN:0@0.024] global loadsave.cpp:241 cv::findDecoder imread_(‘C:\Users\zephy\Documents\Python\CSDN\测试 图片\图片1.jpg’): can’t open/read file: check file path/integrity
Traceback (most recent call last):
File “C:\Users\zephy\Documents\Python\CSDN\demo.py”, line 8, in
cv2.imshow(“image”, img)
cv2.error: OpenCV(4.10.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:973: error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow’

在这里插入图片描述

在定位问题时,将读取图片路径和图片名词更换为全英文后,发现可以正常读取,具体如下:

# 读取英文路径下的图片,显示正常
import cv2

img_path = r'C:\Users\zephy\Documents\Python\CSDN\caps.bmp'
img = cv2.imread(img_path, cv2.IMREAD_COLOR)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

二、问题解决

定位问题后,发现出现上述错误的原因是在中文路径的编解码上,下面是笔者在查找相关文献后找到的解决方法,具体代码如下:

import cv2
import numpy as np

img_path = r'C:\Users\zephy\Documents\Python\CSDN\测试 图片\图片1.jpg'
img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), cv2.IMREAD_COLOR)  # 替换cv2.imread(img_path, cv2.IMREAD_COLOR)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行代码,可顺利读取带有中文路径或中文名词的图片,问题解决。具体读取图片如下:

在这里插入图片描述

到此这篇关于Python读取中文路径出现乱码的问题解决的文章就介绍到这了,更多相关Python读取中文路径乱码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django框架之路由用法

    Django框架之路由用法

    这篇文章介绍了Django框架之路由的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 制作Python数字华容道的实现(可选择关卡)

    制作Python数字华容道的实现(可选择关卡)

    这篇文章主要介绍了制作Python数字华容道的实现(可选择关卡),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python中getattr函数使用方法 getattr实现工厂模式

    python中getattr函数使用方法 getattr实现工厂模式

    这篇文章主要介绍了python中getattr()这个函数的一些用法,大家参考使用吧
    2014-01-01
  • Python实现轻松读取大文件的技巧揭秘

    Python实现轻松读取大文件的技巧揭秘

    Python提供了多种方法来读取文件内容,其中包括read()、readline()和readlines()三个常用的函数,本文将深入探讨这三个函数的使用方法,需要的可以参考一下
    2023-08-08
  • Python进度条神器tqdm使用实例详解

    Python进度条神器tqdm使用实例详解

    Python进度条神器tqdm是一个快速、可扩展的进度条工具,可以轻松地为Python脚本添加进度条。它可以在循环中自动计算进度,并在终端中显示进度条,让用户了解程序的运行情况。tqdm还支持多线程和多进程,并且可以自定义进度条的样式和显示方式。
    2023-06-06
  • Python实现将xml导入至excel

    Python实现将xml导入至excel

    本文给大家讲解的是使用Python的Testlink实现将实现将xml导入至excel表格中,方法非常的简单,另外附上其他小伙伴的方法,有需要的童鞋们可以参考下。
    2015-11-11
  • python文件编写好后如何实践

    python文件编写好后如何实践

    在本篇文章里小编给大家分享了关于python文件编写好后如何实践的相关内容,需要的朋友们可以参考下。
    2020-07-07
  • 基于Python + PyQt搭建可视化页面的详细教程

    基于Python + PyQt搭建可视化页面的详细教程

    PyQt是一个Python绑定库,它是基于Qt库的,PyQt提供了一整套丰富的组件,包括窗口、按钮、菜单、列表框等,以及事件处理、布局管理、网络通信等多种功能,本文介绍了基于Python + PyQt搭建可视化页面的详细教程,需要的朋友可以参考下
    2024-07-07
  • Python中nonlocal和global的区别及闭包使用

    Python中nonlocal和global的区别及闭包使用

    本文主要介绍了Python中nonlocal和global的区别及闭包使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-12-12
  • Python类型注解必备利器typing模块全面解读

    Python类型注解必备利器typing模块全面解读

    在Python 3.5版本后引入的typing模块为Python的静态类型注解提供了支持,这个模块在增强代码可读性和维护性方面提供了帮助,本文将深入探讨typing模块,介绍其基本概念、常用类型注解以及使用示例,以帮助读者更全面地了解和应用静态类型注解
    2024-01-01

最新评论