Python 读取路径时: 'unicodeescape' codec can't decode bytes in position XXX

Python 读取路径时: ‘unicodeescape’ codec can’t decode bytes in position XXX

在运行以下代码时,出现错误(pandas想要读取路径)

// An highlighted block
import pandas as pd
import numpy as np
from pandas import Series,DataFrame

data_train = pd.read_csv("C:\Users\85778\Desktop\caggle\titanic\dataset\train.csv")
data_train.columns

File “”, line 1
data_train = pd.read_csv(“C:\Users\85778\Desktop\caggle\titanic\dataset\train.csv”)
^
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

路径写错了

错误代码如下,这两种写法都是错的

data_train = pd.read_csv("C:\Users\85778\Desktop\caggle\titanic\dataset\train.csv")
data_train.columns
data_train = pd.read_csv('C:\Users\85778\Desktop\caggle\titanic\dataset\train.csv')
data_train.columns

原因

加粗文本
window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用,所以’d:\a.txt’会被转义’d:\a.txt’
这是正确路径,所以不会报错。
而’C:\Users\85778\Desktop\caggle\titanic\dataset \t rain.csv’中经过转义之后可能就找不到路径的资源了, 例如\t可能就转义成tab键了。

解决方法

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

方式一:转义的方式

'd:\\a.txt'

方式二:显式声明字符串不用转义

'd:r\a.txt'

方式三:使用Linux的路径/

'd:/a.txt'

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

解决方法

第一种

data_train = pd.read_csv(r'C:\Users\85778\Desktop\caggle\titanic\dataset\train.csv')
data_train.columns

第二种

data_train = pd.read_csv('C:\\Users\\85778\\Desktop\\caggle\\titanic\\dataset\\train.csv')
data_train.columns

第三种

f  = open(r'C:\Users\85778\Desktop\caggle\titanic\dataset\train.csv')
data_train = pd.read_csv(f)
data_train.columns

第四种

data_train = pd.read_csv(r'C:/Users/85778/Desktop/caggle/titanic/dataset/train.csv')(带不带r都行)
data_train.columns

运行结果(为我自己导入的csv文件的各列元素显示):
Index([‘PassengerId’, ‘Survived’, ‘Pclass’, ‘Name’, ‘Sex’, ‘Age’, ‘SibSp’,
‘Parch’, ‘Ticket’, ‘Fare’, ‘Cabin’, ‘Embarked’],
dtype=‘object’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值