Python的pickle文件是否是跨平台的?

22 投票
6 回答
28884 浏览
提问于 2025-04-15 16:42

我写了一个小的Python脚本。我在Linux上保存了一个pickle文件,然后在Windows上使用了它,接着又回到Linux上使用,但现在这个文件在Linux上不工作了,而在Windows上却没问题。 Python是跨平台的,但pickle文件就不是。 有没有什么解决办法呢???

6 个回答

4

也许你没有以二进制模式打开文件?可以看看这个StackOverflow的问题

12

pickle模块支持几种不同的数据格式。如果你选择了某种特定的pickle格式,而不是使用默认的格式(0),那么你可能会遇到跨平台的二进制文件问题。你可以通过指定协议0来使用普通的ASCII格式的pickle文件。

38

Python的pickle功能在不同平台上都能正常使用。

这可能是因为Windows和Linux在换行符(EOL)上的差异。确保在写入和读取pickle文件时,都以二进制模式打开文件,也就是使用open()的"wb"和"rb"模式。

注意:在不同版本的Python之间传递pickle文件可能会出现问题,所以最好在两个平台上使用相同的Python版本。

撰写回答