2016-10-16 76 views
0

當我執行下面的代碼,我得到的錯誤味酸:文件或目錄未找到

import pickle 
import numpy as np 
from random import gauss 

path ='/flash/data/' 
a = [gauss(1.5, 2) for i in range(1000)] 
pkl_file = open(path +'data.pkl', 'w') 

%time pickle.dump(a, pkl_file) 

我得到以下錯誤(即使我創建/閃光燈/數據/)

IOError Traceback (most recent call last) 

<ipython-input-4-ac470dd231a6> in <module>() 

     1 import pickle 

----> 2 pkl_file = open (path + 'data.pkl','w') 

     3 get_ipython().magic(u'time pickle.dump(a,pkl_file)') 

IOError: [Errno 2] No such file or directory: '/flash/data/data.pkl' 
+0

嘗試格式化你的問題有點。這對眼睛來說很難(而且SO爲此提供了很多解決方案)。儘管如此:通常建議使用python的os.path來處理路徑處理(本地或全局;獨立於操作系統的路徑和合並追加)。你也應該用'''wb'''打開這個文件,但這是另一個問題。 – sascha

+1

你可以給你的代碼添加一個'assert os.path.exists('/ flash/data /')',以排除目錄不存在的可能性。 – cel

+0

感謝它的工作。 – user2560244

回答

1

這本書是一個錯誤。路徑應該是:path ='。/ flash/data /'。一個 」。」錯過了。

+0

謝謝你非常有用。 – user2560244

1

爲Python 3的修正應該是如下,

import os 
os.makedirs(path, exist_ok=True)  #create directory when non-existing 
path = './flash/data/'    #do not miss the '.' 
import numpy as np 
from random import gauss 
a = [gauss(1.5, 2) for i in range(1000000)] 
import pickle 
pkl_file = open(path+'.data.pkl','wb')  #use 'wb' instead of 'w' to avoid TypeError 

%time pickle.dump(a, pkl_file) 
相關問題