python - pickle.load() 在 Windows 中引发 EOFError

标签 python windows file-io newline pickle

代码是这样的

with open(pickle_f, 'r') as fhand:
    obj = pickle.load(fhand)

这在 Linux 系统上运行良好,但在 Windows 上运行不佳。它显示 EOFError。 我必须使用 rb 模式才能使其在 Windows 上运行。现在这在 Linux 上不起作用。

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

最佳答案

读写 pickle 时始终使用b模式(open(f, 'wb')用于写入,open(f, 'rb') 用于阅读)。要“修复”您已有的文件,请使用 dos2unix 转换其换行符。

关于python - pickle.load() 在 Windows 中引发 EOFError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15719930/

相关文章:

python - 获取未从 tastypie 资源响应的对象列表

python - Discord.py 消息固定?

python - 如何将文件夹中的多个 CSV 文件合并到 Azure 上的单个文件?

python - 是否有 Python 的 MySQL 数据库抽象层在 Linux 和 Windows 上都像 pyodbc 一样工作?

python - 什么是适用于 MS Windows 的 QuickTime API 的优秀教程?

python - 打印特定字符的所有字符串索引位置

windows - Jenkins 并从 Windows 批处理返回代码

file-io - 如何在VHDL中读取一行中的元素?

c++ - 逐行改进 C++ 的读取文件?

java - 无法使用 Java 删除文件夹