我在 Python 中使用 pickle 模块并尝试不同的文件 IO 模式:
# works on windows.. "rb"
with open(pickle_f, 'rb') as fhand:
obj = pickle.load(fhand)
# works on linux.. "r"
with open(pickle_f, 'r') as fhand:
obj = pickle.load(fhand)
# works on both "r+b"
with open(pickle_f, 'r+b') as fhand:
obj = pickle.load(fhand)
我从未在任何地方读过“r+b”模式,但在文档中发现了它的提及。
EOFError
如果我使用"rb"
模式,我会在 Linux 上使用,如果使用,我会在 Windows上"r"
使用。我只是试"r+b"
了一下模式,它在两者上都有效。
什么"r+b"
模式?“rb”和“r+b”有什么区别?为什么当其他人不工作时它会起作用?