You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pickle读写二进制文件时出现Ran out of input错误求助

解决pickle读取时的EOFError问题

你遇到的EOFError是因为写入数据后,文件指针停在了文件末尾,直接调用pickle.load()会读到文件结束位置,没有数据可以加载。

解决方法很简单:在执行pickle.dump()之后,需要将文件指针移回文件开头,再执行读取操作。可以用文件对象的seek(0)方法实现,0代表文件的起始位置。

修改后的代码如下:

import pickle 
def write(): 
    with open("STOCK.DAT","wb+") as F: 
        N=[] 
        for i in range(1,3): 
            a=input("ENTRY") 
            N.append([a,a]) 
        print(N) 
        pickle.dump(N,F) 
        # 将文件指针移回文件起始位置
        F.seek(0) 
        a=pickle.load(F) 
        print(a) 
write()

额外补充:如果后续需要单独读取这个文件,建议使用rb只读模式打开,避免误操作覆盖数据,示例代码如下:

import pickle
def read_stock():
    with open("STOCK.DAT", "rb") as F:
        data = pickle.load(F)
        print(data)
read_stock()

内容的提问来源于stack exchange,提问作者Piyush Baweja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:53:13