我先描述一下来龙去脉,首先呢,我这个程序是在Spyder下运行过的,是能成功的,但是到了vscode上面突然就不好用了,本来想在网上找找答案的,但是没找合适的,刚好解决了就来分享一下。
在 Spyder下的代码如图:(重点第七行)
运行结果成功:
可以成功说明我的代码没有问题
接下来我在 vscode 上运行了一模一样的代码,结果出现了问题
出问题的争议代码如下:
for sample in open("../_Data/prices.txt", "r"):
关于错误的描述,是这样的:
File "f:/spyder3workplace/MLtest/MachineLearning-master/a_FirstExample/Regression.py", line 7, in <module>
for sample in open("../_Data/prices.txt", "r"):
FileNotFoundError: [Errno 2] No such file or directory: '../_Data/prices.txt'
由于之前知道出错误就要看这部分的描述,我知道了这个问题要解决,首先他一定是跟 路径 有关。
我们在这里写的是相对路径,既然相对路径不成功,那我们就用绝对路径来试一下。
改成如图所示:
for sample in open("F:\spyder3workplace\MLtest\MachineLearning-master\_Data\prices.txt", "r"):
这里如果有不会在vscode找绝对路径的 我教大家一个方法:
右键单击你要选择的数据或图片----->选择copy path 粘贴到原来丼的位置…这样就成功啦。。
接下来看看运行的成果:
运行成功 。。。这样问题就解决了
这样成功我是 不太满足 的,我还想让它在相对路径下成功。
接下来我尝试了:
打开.py文件的上一个文件夹 而不是 整个项目的文件夹
显然,我成功了!
注意细节
在相对了路径的条件下,运行成功的打开的文件夹,应该是这样的
而之前我们打开的文件夹是这样的(里面包含py文件的文件夹,也就是输上图的文件夹是这个文件夹的子文件夹)
总结(划重点)
这里要补充一点的是,我在Spyder中代开的是.py文件,也就是说它可以直接访问相对路径,和文中提到的直接打开子文件夹就是py文件的第一个文件夹,二者其实是一个概念,最开始提到的绝对路径的代码是在泥放入了整个项目的时候,才最好用的方法。
- 想用相对路径
for sample in open("../_Data/prices.txt", "r"):
就必须把打开的文件夹弄成包含py文件最接近的一个文件夹
- 想用绝对路径
for sample in open("F:\spyder3workplace\MLtest\MachineLearning-master\_Data\prices.txt", "r"):
就可以直接放整个项目的的文件夹,直接放workplace都可以
想要不报错,一是改路径 ,二是改打开的文件夹
这下就好多了吧。大家一起努力,加油好好学哦