我正在使用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"模式的介绍,但在文档中看到了它的提及。
如果我使用"rb"模式,在Linux上会出现EOFError
,如果使用"r"模式,则在Windows上出现。我尝试了一下"r+b"模式,它在两个操作系统上都可以工作。
什么是"r+b"模式? "rb"和"r+b"之间有什么区别?为什么它可以工作而其他模式不行?
'r'
和'rb'
之间的区别。 - Yossarian42