【发布时间】:2013-03-21 03:20:51
【问题描述】:
代码是这样的
with open(pickle_f, 'r') as fhand:
obj = pickle.load(fhand)
这适用于 Linux 系统,但不适用于 Windows。它显示EOFError。
我必须使用rb 模式才能使其在 Windows 上运行。现在这不适用于 Linux。
为什么会发生这种情况,以及如何解决?
【问题讨论】:
-
当你创建pickle对象时,你是在什么操作系统上创建它的? Linux 还是 Windows?我不认为你可以在一个系统上创建一个泡菜对象并从其他系统加载它
-
@Rush 代码最初是在 Linux 上编写的。我(新开发人员)在 Windows 中工作......但由于它是一个 Django 项目,我再次在我的系统上生成了所有内容......
-
@Rush,当然可以。只要在两端都以二进制方式打开文件,避免换行不兼容。
标签: python windows file-io newline pickle