2017-02-10 267 views
0

我試圖加載一個.csv文件使用pd.read_csv函數,當我得到一個錯誤,儘管文件路徑是正確的,並使用原始字符串。找不到pandas.read_csv文件,儘管正確的路徑與原始文本

df = pd.read_csv('‪C:\\Users\\user\\Desktop\\datafile.csv') 
df = pd.read_csv(r'‪C:\Users\user\Desktop\datafile.csv') 
df = pd.read_csv('C:/Users/user/Desktop/datafile.csv') 

所有,給出以下

FileNotFoundError錯誤:文件B '\ XE2 \ X80 \ xaaC:/Users/user/Desktop/tutorial.csv'(或相關路徑)不存在。

只有當我複製到工作目錄的文件將加載正確。有沒有人知道可能導致錯誤的原因?我以前已經加載了其他數據集完整的文件路徑沒有任何問題,我目前只遇到問題,因爲我已經重新安裝我的python(通過Anaconda軟件包安裝程序)。

編輯: 我發現導致問題的問題。當我從文件屬性窗口複製文件路徑時,我無意中複製了另一個看起來不可見的字符。分配該複製的字符串也會導致unicode錯誤。刪除隱形字符使得上面的任何代碼都可以工作。

+0

'e2 80 aa'是U + 202A的UTF-8編碼,即從左到右的嵌入符號。很確定這不屬於路徑字符串,所以它表明你有一個字符串編碼問題。如果你在py3('u'C:\\ ...'')或者字節字符串文字(如果你在py3中),試試Unicode字符串文字('b'C:\\ ...'')。 – wildwilhelm

+0

如果您從路徑中刪除驅動器(即'/Users/user/Desktop/datafile.csv'),它會工作嗎? – cmaher

+0

不知道'U + 202A'是怎麼進去的。這是剪切/粘貼?如果是這樣,請手動刪除並重新輸入。系統上的默認語言是什麼?如果從右到左書寫,那麼這很有趣!我對文件系統沒有過濾掉字符感到有點驚訝。 – tdelaney

回答

0

嘗試使用os.path.join創建文件路徑:

import os 
f_path = os.path.join(*['C:', 'Users', 'user', 'Desktop', 'datafile.csv']) 
df = pd.read_csv(f_path) 
+0

我試圖根據你的建議創建文件路徑,但沒有成功。錯誤「FileNotFoundError:文件b'C:用戶\\用戶\\桌面\\ tutorial.csv'不存在」出現時,我試圖將它合併。按照cmaher的建議移除驅動器已經工作了,但我想知道將來如果我需要聲明驅動器,應該輸入什麼內容? – Impuls3H

+0

在Google或SO上搜索您的問題,您將找到解決方案 – AlexG

+0

我設法確定了我所面臨的問題。這是一個不可見的字符,它從文件路徑中的文件屬性中找到的文件路徑複製而來。畢竟刪除那個不可見的角色是有效的。 – Impuls3H

-1

$ 10說,你的文件路徑是對於.py文件的位置正確,但不正確的相對於位置從中調用Python

例如,假設script.py位於〜/ script /,file.csv位於〜/。比方說,script.py包含

import pandas 
df = pandas.read_csv('../file.csv') # correct path from ~/script/ where script.py resides 

如果從〜/運行python script/script.py,你會得到FileNotFound錯誤。但是,如果從〜/ script /運行python script.py,它將起作用。

+1

我正在使用完整的文件路徑,所以我的$ 10是安全的!我發現導致這個問題的問題!這是一個被複制的隱形角色。看起來像是一個小問題的恐慌! – Impuls3H

+0

@ Impuls3H你說'隱形人物'是什麼意思?尾隨空間? – user1318135

6

試試看看它是否有效。這與您提供的路徑無關。

pd.read_csv(r'C:\Users\aiLab\Desktop\example.csv') 

這裏r是一個特殊字符,意味着回車。所以將其前綴添加到字符串文字中。

+1

這樣做是爲了解決這個問題?它確實爲我解決了這個問題,但我不明白爲什麼。 – user1318135

0

我知道以下是一個愚蠢的錯誤,但它可能是您的文件的問題。

我已將文件從adfa123手動更名爲abc.csv。該文件的擴展名被隱藏,重命名後,實際文件名成爲abc.csv.csv。然後我從名稱中刪除了額外的.csv,一切都很好。

希望它可以幫助其他人。

0
import pandas as pd 

path1 = 'C:\\Users\\Dell\\Desktop\\Data\\Train_SU63ISt.csv' 
path2 = 'C:\\Users\\Dell\\Desktop\\Data\\Test_0qrQsBZ.csv' 

df1 = pd.read_csv(path1) 
df2 = pd.read_csv(path2) 

print(df1) 
print(df2) 
相關問題