Python 解决OPEN读文件报错 ,路径以及r的问题


Posted in Python onDecember 19, 2019

Python 中 ‘unicodeescape' codec can't decode bytes in position XXX: trun错误解决方案

背景描述

今天在运用Python pillow模块处理图片时遇到一个错误

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

刚开始以为是图片名字有中文,不识别,于是在python文件的头部加上

#-*- coding:utf-8 -*-

但是加完这个还是报错,然后我就把图片的中文去掉还成英文,然后报错,一脸懵逼呀。后来在stackoverflow 上找到了类似的错误,原来是图片路径写的 有问题,错误代码如下

im = Image.open('C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg')

正确结果

im = Image.open('C:\\Users\\FrankYuan\\Pictures\\Camera Roll\\WIN_20161010_08_51_57_Pro.jpg')

或者

im = Image.open(r'C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg')

抑或

im = Image.open(r'C:/Users/FrankYuan/Pictures/Camera Roll/WIN_20161010_08_51_57_Pro.jpg')

原因:

window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用,所以'd:\a.txt'会被转义成'd:\a.txt'这是正确路径,所以不会报错。而‘C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg '中经过转义之后可能就找不到路径的资源了,例如\t可能就转义成tab键了。

解决办法

python在描述路径时可以有多种方式,现列举常见的三种

方式一:转义的方式
 
'd:\\a.txt'
 
方式二:显式声明字符串不用转义
 
'd:r\a.txt'
 
方式三:使用Linux的路径/
 
'd:/a.txt'

我强烈推荐第三种写法,这在Linux和window下都是行的通的。

以上这篇Python 解决OPEN读文件报错 ,路径以及r的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
在Python中操作字符串之replace()方法的使用
May 19 Python
5种Python单例模式的实现方式
Jan 14 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
Python装饰器用法示例小结
Feb 11 Python
python3爬取数据至mysql的方法
Jun 26 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
pandas通过loc生成新的列方法
Nov 28 Python
Django Rest framework之权限的实现示例
Dec 17 Python
简单了解python列表和元组的区别
May 14 Python
Python lambda表达式原理及用法解析
Aug 18 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 #Python
Python监控服务器实用工具psutil使用解析
Dec 19 #Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 #Python
python 普通克里金(Kriging)法的实现
Dec 19 #Python
Python函数参数类型及排序原理总结
Dec 19 #Python
python中with语句结合上下文管理器操作详解
Dec 19 #Python
Django中密码的加密、验密、解密操作
Dec 19 #Python
You might like
PHP模板引擎SMARTY
2006/10/09 PHP
桌面中心(四)数据显示
2006/10/09 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
javascript动态加载三
2012/08/22 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
JS定时器实例
2013/04/17 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
简单使用Python自动生成文章
2014/12/25 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
python实现linux下抓包并存库功能
2018/07/18 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
PyQt 如何创建自定义QWidget
2021/03/24 Python
销售目标责任书
2014/07/23 职场文书
大学生入党自荐书
2015/03/05 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
Redis Cluster集群动态扩容的实现
2021/07/15 Redis
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL