2013-03-28 2 views
3

Я пытаюсь загрузить файл, используя cPickle следующим образом,cPickle сгущенного ошибка

import cPickle 

cPickle.load(open('test', 'rb')) 

Однако, я получаю эту ошибку,

--------------------------------------------------------------------------- 
UnpicklingError       Traceback (most recent call last) 
<ipython-input-527-1b7653ff1917> in <module>() 
----> 1 cPickle.load(open('test', 'rb')) 

UnpicklingError: unpickling stack underflow 

А иногда он выдает эту ошибку

UnpicklingError: could not find MARK 

Любая причина, по которой я получаю это?

PS: cPickle не работает со мной ни с каким файлом, даже с новыми файлами, содержащими только два слова. Я использую Ubuntu 12.04 и Python 64bit

+3

Похоже, вы можете упустить некоторые ведущие или ведомые байт. Как вы сделали файл? Вы закрылись, прежде чем закрыть его? Он достаточно мал, чтобы публиковать здесь? –

+0

@ dan.lecocq, я обновил вопрос, в основном, не работая с каким-либо файлом, содержимое файла - это что-то вроде «тестового теста», я создаю свои файлы, щелкнув правой кнопкой мыши на создании файла – Curious

+0

Не могли бы вы вывести результат : 'cPickle.loads (cPickle.dumps (" test "))'? –

ответ

0

Попробуйте это исправлена ​​ошибка для меня:

import pickle 
import pandas as pd 


# read in csv file to pandas dataframe and save as pickle file 
training_data = pd.read_csv('train.csv') 
pickle_out = open('train.pkl', 'wb') 
pickle.dump(training_data, pickle_out) 
pickle_out.close() 


# open pickle file 
file = 'train.pkl' 
with open(file, 'rb') as f: 
    training_data = pickle.load(f) 
    f.close() 
Смежные вопросы