OSError: [Errno 22] Invalid argument问题解决

OSError: [Errno 22] Invalid argument问题解决OSError:[Errno22]Invalidargument问题解决问题描述解决方法那么问题出在哪了?总结问题描述在做SSD目标检测算法的时候,在predict.py文件中遇到了这么一个报错的问题。//ERRORTraceback(mostrecentcalllast):File”D:/ssd-keras-fromCSDN-Parathyoid/predict…

大家好,又见面了,我是你们的朋友全栈君。

OSError: [Errno 22] Invalid argument问题解决

问题描述

在做SSD目标检测算法的时候,在predict.py文件中遇到了这么一个报错的问题。

// ERROR
Traceback (most recent call last):
  File "D:/ssd-keras-fromCSDN-Parathyoid/predict.py", line 7, in <module>
    image = Image.open("‪C:\Users\qw\Desktop\000000.jpg")
  File "D:\anaconda\envs\py37\lib\site-packages\PIL\Image.py", line 2809, in open
    fp = builtins.open(filename, "rb")
OSError: [Errno 22] Invalid argument: '\u202aC:\\Users\\qw\\Desktop\\000000.jpg'

是由于在读取 C:\Users\qw\Desktop\000000.jpg文件时候出现了错误,最终读取出的文件地址变成了

\u202aC:\Users\qw\Desktop\000000.jpg

很明显是多出来了一个 \u202a 这样一个符号,并且将盘符下的分割符居然也改变了,非常神奇的错误!!惊了!!!

解决方法

第一种方法:修改代码

image = Image.open("‪C:\Users\qw\Desktop\000000.jpg")

修改成

image = Image.open(r"‪C:\Users\qw\Desktop\000000.jpg")

r”file“:意思是指为了避免\xx是一个转义字符而导致的错误,也就是说加上r之后,“”里的就不再出现转义字符,编程纯的文件地址。

当然这样的错误还有一种解决方法,但不太建议使用,因为不一定能解决实质问题。

image = Image.open("‪C:\Users\qw\Desktop\000000.jpg")

修改成

image = Image.open("‪C://Users/qw/Desktop/000000.jpg")

也就是把\改成/,把:\改成://。 我的经验是有时候管用,有时候就不管用了,比较玄学。至于原因,我还不太明白。

第二种方法:手动输入 按照pycharm编程时候的提醒写下去的代码 一定保熟!!!

相当于已经能够找到文件了
像这样修改像这样修改完全不会有问题,亲测可用。

那么问题出在哪了?

一般我们找文件保存地址的时候,都是右击属性里面找。比如在这里插入图片描述
正好就是在 Ctrl+C Ctrl+V的时候出了问题。

在这里直接复制粘贴就会出现

OSError: [Errno 22] Invalid argument: '\u202aC:\\Users\\qw\\Desktop\\000000.jpg'

就会在C:\前出现一串 \u202a,导致找不到文件

这恰恰就是因为在属性里复制文件地址得来的

这符号在文件地址显示的时候并不会显示,所以在右键属性 以及 Pycharm代码里 的时候看到的依旧是C:\Users\qw\Desktop\000000.jpg

但是在pycharm编程的代码运行时,可以理解为多了一个隐含符 \u202a

\u202a的含义是left to right,也就是说读取的顺序是从左往右读取。也就和每个人的电脑盘符一样,从C:/一次向更深层的根目录读取。

总结

所以说,好技术不如多动手
只要动手,亲手敲代码,就不会有这个问题了
Ctrl+C Ctrl+V也不是万能药水,有时候有毒啊

如果有问题欢迎指正!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152584.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 软件测试必问必背面试题

    软件测试必问必背面试题软件测试必问必背面试题01软件测试理论部分1.1测试概念1.请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码集成测试:通过测试发现与模块接口有关的问题系统测试:是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件回归测试:回归测试是指在发生修改之后重新测试先前的测试用例以保证修改的正确性验收测试:这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。验收测试包括Al

    2022年6月24日
    23
  • JAVA为啥要用stream流处理_java哪个部分最难学

    JAVA为啥要用stream流处理_java哪个部分最难学小应学长带你学Java

    2022年10月6日
    2
  • windows端安装eclipse导入maven工程的方法

    windows端安装eclipse导入maven工程的方法windows端安装eclipse导入maven工程的方法第一:下载并安装eclipse。下载地址:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/R/eclipse-jee-mars-R-macosx-cocoa-x86_64.tar.gz第二:jdk下载并安装。下…

    2022年5月31日
    33
  • 相位式激光测距法中相位产生原理「建议收藏」

    相位式激光测距法中相位产生原理「建议收藏」相位式激光测距原理深入解析

    2022年5月5日
    45
  • 总结Redis Cluster原理+基本使用+运维注意事项「建议收藏」

    目录一、RedisCluster数据分布理论选择(一)数据分布关注点(二)三种数据分布方案的对比1.节点取余分区方案2.一致性哈希分区方案3.虚拟槽分区方案(RedisCluster采用此方案)二、RedisCluster节点通信概述(一)Gossip消息(二)消息格式分析(三)消息处理流程(四)节点选择(五)通信流程总述三、搭建集群与简单…

    2022年4月14日
    40
  • docker(4)解决pull镜像速度缓慢「建议收藏」

    docker(4)解决pull镜像速度缓慢「建议收藏」前言上一篇讲到pull镜像,但是pull镜像的时候下拉的速度实在感人,有什么解决办法吗?我们只需将docker镜像源修改为国内的将docker镜像源修改为国内的:在/etc/docker/d

    2022年7月29日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号