数据读取——代码编写过程中出现的错误

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字符串


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值