我在 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”模式,但在 documentation 中发现了它的提及。 .
如果我使用 "rb"
模式,我会在 Linux 上收到 EOFError
,如果使用 "r"
,我会在 Windows 上收到。我刚刚试了一下 "r+b"
模式,它对这两种模式都有效。
什么是“r+b”
模式? “rb”和“r+b”有什么区别?为什么其他人不工作时它会起作用?
最佳答案
r+
用于读写模式。 b
用于二进制。
r+b
模式是以读写方式打开二进制文件。
您可以阅读更多 here .
关于python - 文件对象中的rb和r+b模式有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15746954/