Разница между io.FileIO и open () в двоичном режиме - PullRequest
0 голосов
/ 22 ноября 2018

Они дают один и тот же результат на основе контрольной суммы:

with open('openb', 'wb') as f:
    f.write(b'asdf')

with io.FileIO('fileio', 'w') as f:
    f.write(b'asdf')

Есть ли между ними разница?Когда следует использовать один метод вместо другого?

1 Ответ

0 голосов
/ 22 ноября 2018

На самом деле метод open() создаст io.BufferedWriter, который наследуется от IOBase, а FileIO также наследуется от IOBase.Хотя это не совсем те же классы, они поддерживают в основном идентичные функции.Я полагаю, вы могли бы использовать FileIO, если знаете, что вам не нужна буферизация.На странице python io docs много информации Самое важное предложение там:

Необработанный двоичный ввод-вывод обычно обеспечивает низкоуровневый доступ к базовому устройству ОС илиAPI, и не пытается инкапсулировать его в примитивы высокого уровня (это оставлено для буферизованного ввода-вывода и текстового ввода-вывода, описанного далее на этой странице).

Необработанный двоичный ввод-выводотносится к io.FileIO и буферизованному вводу-выводу к io.BufferedWriter (метод open())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...