pickle.load文件时候EOFError: Ran out of input

原因:load的文件为空,就会出现这种错误。

解决方案:

1.如果是读取单个文件的话,查看文件是否为空。

有可能之前不是空文件,但由于用pickle.load文件时需要打开文件操作,可能在这个过程中把文件内容清空了也未可知。

import pickle
import os
file_name = 'tokenizer.pkl'
if os.path.getsize(file_name):
    with open(file_name,'rb') as f:
        tokenizer = pickle.load(f)
else:
    print('the file is 空')
 

2.如果是批量操作文件的话,可以抛出异常,这样就不会影响整个程序的运行。
try:
    with open(file_name,'rb') as f:
        tokenizer = pickle.load(f)
except EOFError:
    print('the file is 空')

如果不知道是什么错误

try:
    with open(file_name,'rb') as f:
        reload_tokenizer = pickle.load(f)
except Exception as e:
    print('the file is 空 %s'%e)

 

你可能感兴趣的:(python)