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

如何修复使用Pickle模块时出现的TypeError: file must have a 'read' attribute错误

报错原因&修复方案

你代码里存在多个逻辑错误,直接触发报错的是pickle.dump的传参错误,所有问题点整理如下:

  • pickle.dump() 要求第二个参数为已打开的可写文件对象,你传入的是字符串类型的文件路径'bruh.txt',字符串本身没有read/write属性,直接触发了本次TypeError
  • 读写文件路径不匹配:写入逻辑指向bruh.txt,读取逻辑却读取bruh.bin,就算写入成功后续也读不到对应内容
  • 文件打开模式错误:两个上下文管理器都用了rb(二进制只读)模式,写入操作需要用wb(二进制写入)模式打开
  • pickle.dump() 无返回值,不需要赋值给变量,强制赋值只会把原变量覆盖为None

修复后的可运行代码如下:

import pickle

myvar = input("test: ")

# 写入pickle数据:用wb模式打开对应文件,传入文件对象给dump方法
with open("bruh.bin","wb") as f:
    pickle.dump(myvar, f)

# 读取pickle数据:用rb模式打开同一个文件
with open("bruh.bin","rb") as f:
    myvar = pickle.load(f)
print(myvar)

内容的提问来源于stack exchange,提问作者Blobby YT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:15:06