Я использую pickle module в Python и пытаюсь использовать разные режимы ввода 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
в Linux, если я использую режим "rb"
и в Windows, если используется "r"
. Я просто дал "r+b"
режим выстрела, и он работает на обоих.
Какой "r+b"
режим? Какая разница между "rb" и "r + b"? Почему это работает, когда другие не делают?