Python pickle.load()在Windows中提升EOR

Python pickle.load()在Windows中提升EOR,python,windows,file-io,newline,pickle,Python,Windows,File Io,Newline,Pickle,代码就是这样的 with open(pickle_f, 'r') as fhand: obj = pickle.load(fhand) 这在Linux系统上运行良好,但在Windows上不起作用。这是埃奥费罗。 我必须使用rb模式使其在Windows上工作。。现在这在Linux上不起作用了 为什么会发生这种情况,以及如何解决它?在读取和写入pickle时始终使用b模式(open(f,'wb')用于写入,open(f,'rb')用于读取)。要“修复”已有的文件,请使用dos2unix转换

代码就是这样的

with open(pickle_f, 'r') as fhand:
    obj = pickle.load(fhand)
这在Linux系统上运行良好,但在Windows上不起作用。这是埃奥费罗。 我必须使用
rb
模式使其在Windows上工作。。现在这在Linux上不起作用了


为什么会发生这种情况,以及如何解决它?

在读取和写入pickle时始终使用
b
模式(
open(f,'wb')
用于写入,
open(f,'rb')
用于读取)。要“修复”已有的文件,请使用
dos2unix

转换其换行符创建pickle对象时,您是在什么操作系统上创建的?Linux还是Windows?我不认为可以在一个系统上创建pickle对象并从other@Rush代码最初是在Linux上编写的。。我(新开发人员)正在windows中工作。。。但由于这是一个Django项目,我再次在我的系统上正确生成了所有内容。@Rush,你当然可以。只要您在两端以二进制模式打开文件,就可以避免换行不兼容。可能的重复是什么意思?为什么需要
r+b
呢?我只是尝试了pickle docs中提到的一些模式:p厌倦了设置生产服务器。我也遇到了同样的问题,但这是因为我以前生成的文件在创建时没有
b
标志。谢谢你的提示!