寫在前面
在用pd.read_csv讀取數(shù)據(jù)集時,我有2個疑問?1是:寫相對路徑還是絕對路徑。2是:相對路徑,絕對路徑怎么寫。這篇文章就是解決以上兩個問題。如果這個腳本只是在自己電腦上,都可以無所謂,但是如果別人也想用你的腳本,我認為相對路徑還是比較好的,數(shù)據(jù)集和腳本一起拷貝給別人,如果環(huán)境沒問題的話路徑不用修改就可以直接運行,如果你用絕對路徑的話,別人拿到之后還得自己修改路徑。
出現(xiàn)的問題
報錯,這個路徑?jīng)]找到文件,路徑寫錯了。 
解決問題
一般是數(shù)據(jù)集與你的腳本在一個文件夾下。 我用的是絕對路徑 第1步打印腳本所在的路徑
import os
os.getcwd()
print(os.getcwd())

第2步 加上你的數(shù)據(jù)集路徑
train = pd.read_csv('F:\\pythonProject3\\data\\data\\train.csv')
下面是我的腳本和數(shù)據(jù)集的文件。 
第3步測試一下
print(train)

用相對路徑讀取數(shù)據(jù)集
前提數(shù)據(jù)集與腳本不在同一個文件下,但同在上一級文件夾。就是下面這種情況。  讀取文件方式
train = pd.read_csv('..\\train.csv')
圖中的“..” 表示是當前所處的文件夾上一級文件夾的絕對路徑。也就是我下圖中data路徑
F:\pythonProject3\data\data
實在不理解可以自己試試
import os
path1=os.path.abspath('.') #表示當前所處的文件夾的絕對路徑
print("path1@@@@@",path1)
path2=os.path.abspath('..') ## 表示當前所處的文件夾上一級文件夾的絕對路徑
print("path2@@@@@",path2)
完整的代碼
import pandas as pd
import numpy as np
import os
os.getcwd()
# F:\\pythonProject3\\data\\data\\train.csv
# dataset_path = '..'
train = pd.read_csv('..\\train.csv')
path1=os.path.abspath('.')
print("path1@@@@@",path1)
path2=os.path.abspath('..')
print("path2@@@@@",path2)
print(train)
參考
https://www.jb51.net/article/168860.htm
|