EOFError: Ran out of input

来源:互联网 发布:足迹美图软件 编辑:程序博客网 时间:2024/06/05 02:30

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

import osscores = {} # scores is an empty dict alreadyif 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 {}

参考:Why do I get “Pickle - EOFError: Ran out of input” reading an empty file?

阅读全文
1 0