对路径问题好像一直有个坑,这次记录下,希望可以帮到像我一样在路径问题徘徊的小伙伴
获取路径
写代码时,路径是从文件下复制到的目录路径,如何判断路径对不对(换而言之就是获取当前路径或上级目录路径),如下:
方法一:
import os,sys
print(os.path.abspath('main.py'))#获取当前路径
输出:
C:\Users\haha\bs\Feature_extraction&construction\main.py
方法二:
import os
path1=os.path.abspath('.') #表示当前所处的文件夹的绝对路径
path2=os.path.abspath('..') #表示当前所处的文件夹上一级文件夹的绝对路径
print(path1)
print(path2)
输出:
C:\Users\haha\bs\Feature_extraction&construction
C:\Users\haha\bs
引入路径
在给变量赋值路径时,要注意斜杠在python的字符串中有转义的作用,例如下面写:
path='C:\Users\haha\bs\Datacastle_subsidy'
会报错提示如图:
这就是因为没有注意斜杆的问题。解决:在路径前面加一个r,这样:
path=r'C:\Users\haha\bs\Datacastle_subsidy'
或写成双斜杆\\
相对路径和绝对路径
相对路径和绝对路径定义是什么,想必大家都知道了。那我这里就直接举一个路径例子
这里open('路径'),打开文件,是绝对路径(表示该文件在当前目录上级目录下文件),如果换做
open('sorce.txt')也是绝对路径(该文件和当前文件在同级目录下)
open('C:\Users\haha\bs\Feature_extraction&construction\score_input\score_train_feature.csv')就是相对路径
相对指的就是相对于当前文件夹路径,也就是你编写的这个.py文件所放的文件夹路径。
依次打开的路径分别如下:
C:\Users\haha\bs\Feature_extraction&construction\sorce.txt
C:\Users\haha\bs\Datacastle_subsidy\train\subsidy.txt
C:\Users\haha\bs\Feature_extraction&construction\score_input\score_train_feature.csv
(取得名称有丢丢复杂,看的时候把它看成一个字母就好了)
看到这里不知道你发现没有,绝对路径和相对路径斜杠不一样,有一个是反斜杠。注: 常用’/‘来表示相对路径,’\‘来表示绝对路径