问题描述
运行以下代码:
#加载数据集
def load_data(path):
result = []
with open(path) as f:
for line in f:
line = line.strip("\n")#把每一行两边的换行符去掉
result.append(line.split(","))
return result
dataset = load_data("D:\\本科\\大三下\\机器学习\\实验\\code\\shopping.csv")
报错:
OSError: [Errno 22] Invalid argument: '\u202aD:\\本科\\大三下\\机器学习\\实验\\code\\shopping.csv'
可以观察到报错的地址前多了一个**\u202a**
解决方法
1.在地址前加"r",即r"file"
修改代码如下:
将"D:\\本科\\大三下\\机器学习\\实验\\code\\shopping.csv"
改成r"D:\本科\大三下\机器学习\实验\code\shopping.csv"
形式
with open(r"D:\本科\大三下\机器学习\实验\code\shopping.csv") as f:
for line in f:
line = line.strip("\n")#把每一行两边的换行符去掉
result.append(line.split(","))
2.手敲地址就没什么问题啦
错误原因
从文件属性中找到的文件地址在ctrl+c和ctrl+v过程中出现问题
经测试,在属性中复制的地址在记事本和代码中粘贴没有问题,但在WPS中粘贴时D前面仍有一串字符,这串字符就是**\u202a**
\u202a的意思是left to right<从左向右读>
参考文章