glove = pickle.load(f)EOFError:输入输出

时间:2018-03-08 22:42:28

标签: python python-3.x nlp pickle

所以这里:

glove_path = './embeddings/glove_{}_{}.pkl'.format(dataset,mode)
if(os.path.isfile(glove_path)):
        print("Reusing glove dictionary to save time")
        #with open(glove_path,'r') as f:
        with open(glove_path, 'rb') as f: #python 3 for pickle byte size object is needed not str
                glove = pickle.load(f)
        save = False

如果我尝试

with open(glove_path,'r') as f:

我收到以下错误:

Reusing glove dictionary to save time
Traceback (most recent call last):
  File "prepare.py", line 315, in <module>
    glove = pickle.load(f)
TypeError: a bytes-like object is required, not 'str'

如果我尝试

with open(glove_path, 'rb') as f: #python 3 for pickle byte size object is needed not str

我收到以下错误:

Reusing glove dictionary to save time
Traceback (most recent call last):
  File "prepare.py", line 315, in <module>
    glove = pickle.load(f)
EOFError: Ran out of input

你能指导一下如何解决这个问题吗?

我正在使用https://github.com/vanzytay/pytorch_sentiment_rnn中的代码并使用Anaconda Python 3.6

我已经导入了像

这样的泡菜
import six; from six.moves import cPickle as pickle #import compatability with Python 2 using six 

虽然最初导入为:

import cPickle as pickle #python 2

1 个答案:

答案 0 :(得分:1)

“EOFError:输出输出”意味着您正在尝试读取空文件。 检查您尝试读取的文件是否为空。