pickle.load()在Windows中引发EOFError

Sur*_*rya 14 python windows file-io newline pickle

这就是代码的方式

with open(pickle_f, 'r') as fhand:
    obj = pickle.load(fhand)
Run Code Online (Sandbox Code Playgroud)

这适用于Linux系统,但不适用于Windows.它显示了EOFError.我必须使用rb模式使其在Windows上运行..现在这不适用于Linux.

为什么会这样,以及如何解决?

shx*_*hx2 25

b在阅读和书写泡菜时总是使用模式(open(f, 'wb')用于书写,open(f, 'rb')阅读).要"修复"您已有的文件,请使用转换其换行符dos2unix.

  • 我有同样的问题,但这是因为我以前生成的文件在创建时没有`b`标志.谢谢你的暗示! (2认同)