Python 无法在Mac上取消勾选Windows上已勾选的文件

Python 无法在Mac上取消勾选Windows上已勾选的文件,python,windows,macos,pickle,Python,Windows,Macos,Pickle,我有一个简单的类,我正在将它酸洗(转储)到一个文件中。在OSX上这很好,在Windows上也很好 但是,在windows上,我可以很好地加载/取消拾取对象-当windows对该文件进行pickle并将其保存回磁盘时,它在OS X上就变得不可读(尽管在windows中,它的行为仍然正常) 我从OSX得到的错误是无法导入require类 我很困惑,只要我不在窗户上腌渍任何东西,这一切都很好!(即使如此,它在Windows中仍能正常工作) 我听说可能是行尾,我的其他想法可能与不同操作系统使用的编码类型

我有一个简单的类,我正在将它酸洗(转储)到一个文件中。在OSX上这很好,在Windows上也很好

但是,在windows上,我可以很好地加载/取消拾取对象-当windows对该文件进行pickle并将其保存回磁盘时,它在OS X上就变得不可读(尽管在windows中,它的行为仍然正常)

我从OSX得到的错误是无法导入require类

我很困惑,只要我不在窗户上腌渍任何东西,这一切都很好!(即使如此,它在Windows中仍能正常工作)


我听说可能是行尾,我的其他想法可能与不同操作系统使用的编码类型有关?但我真的不知道如何尝试全面诊断和/或解决此问题,因此任何帮助都将不胜感激

使用最新协议版本进行Pickle,并在所有情况下以二进制模式打开文件。这应该可以解决问题。

如果您在ASCII模式“r”或“w”下使用ASCII pickle open file,那么将是行尾-如果您在二进制模式“rb”“wb”下使用二进制pickle open file。从文档字符串:

默认值 协议为0,向后兼容。(协议0是 只能写入以文本形式打开的文件的协议 模式并成功读回。当使用更高的协议时 如果大于0,请确保文件以二进制模式打开,并且 酸洗和脱粘。)