继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python3:EOFError: Ran out of input

不要慕码人我要切诺基
关注TA
已关注
手记 281
粉丝 37
获赞 120

使用pickle.load(f)加载pickle文件时,报错:EOFError: Ran out of input.
可能原因:文件为空。
解决办法:加载非空文件。
其他解决办法:
1、加载前判断文件是否为空

import os

scores = {} # scores is an empty dict already

if os.path.getsize(target) > 0:      

    with open(target, "rb") as f:

        unpickler = pickle.Unpickler(f)

        # if file is not empty scores will be equal

        # to the value unpickled

        scores = unpickler.load()


2、捕获异常

open(target, 'a').close()

scores = {};

try:

    with open(target, "rb") as file:

        unpickler = pickle.Unpickler(file);

        scores = unpickler.load();

        if not isinstance(scores, dict):

            scores = {};

except EOFError:

    return {}


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP