过程中出现的错误"/>
数据读取——代码编写过程中出现的错误
import pandas as pd
result = []
import codecs
with codecs.open('C:\Users\86150\Desktop\data_202107.tsv','rb','gb18030',errors='ignore') as csvfile:for line in csvfile:temp1 = line.split('\t')result.append(temp1)
使用open打开文件出现的错误如下
(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用,经过转义之后可能就找不到路径的资源了,例如\t会转义为tab键
-
问题原因
-
在文件夹中复制地址时,
文件夹中的地址是用 \ 来分隔不同文件夹的
,而Python识别地址时只能识别用 / 分隔的地址
。 -
在Python中\是转义符,\u表示其后是UNICODE编码,因此\User在这里会报错,在字符串前面加个r表示就可以了
-
转义字符 说明 \
在行尾的续行符,即一行未完,转到下一行继续写 ' 单引号 " 双引号 \0 空 \n 换行符 \r 回车符 \a 响铃 \b 退格(backspace) \ 反斜线 \0xx 八进制数,xx代表字符,如\012代表换行 \xhh 十六进制数,hh代表字符,如\x0a代表换行 \t 水平制表符,用于横向跳到下一制表位 -
解决方法
-
1.在字符串前加上r或R,即:imread(r‘C:\Users\li735\PycharmProjects\untitled\abc.txt’) ,其中r或R在python中表示一个不转义的字符串。
-
2.在“\”前加上”\”实现转义。即:imread(‘C:\Users\harchi\Desktop\图像处理\skeleton.bmp’)
-
3.将“\”换为“/”,即:imread(‘C:/Users\harchi/Desktop/图像处理/skeleton.bmp’)
最后:补充一下python字符串前缀的知识:
1、在字符串前加上r或R表示该字符串是非转义的原始字符串。
2、在字符串前加上u或U表示该字符串是unicode字符串
更多推荐
数据读取——代码编写过程中出现的错误
发布评论