2016-10-16 9 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) 

я получаю следующее сообщение об ошибке (даже если я создал/Flash/данные /)

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 предоставляет множество решений для этого). Несмотря на это: обычно рекомендуется использовать os.path python для обработки обработки путей (локальное или глобальное; os-независимое добавление путей и соавторов). Вероятно, вы также должны открыть файл с '' 'wb''', но это еще одна проблема. – sascha

+1

вы можете добавить в свой код 'assert os.path.exists ('/ flash/data /')', чтобы исключить возможность того, что каталог не существует в конце концов. – cel

+0

спасибо, что это сработало. – user2560244

ответ

1

Это ошибка в этой книге. Путь должен быть: path = './Flash/data /'. A "." пропущен.

+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) 

 Смежные вопросы

  • Нет связанных вопросов^_^