На низком уровне os.open/read/write работают с файловыми дескрипторами и байтами. io.FileIO даёт объектную обёртку, буферизованные потоки добавляют буфер, а текстовые — кодирование и обработку переводов строк.
Какие есть низкоуровневые варианты организации чтения и записи файлов в Python и чем они отличаются?
На низком уровне os.open/read/write работают с файловыми дескрипторами и байтами. io.FileIO даёт объектную обёртку, буферизованные потоки добавляют буфер, а текстовые — кодирование и обработку переводов строк.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
На низком уровне os.open/read/write работают с файловыми дескрипторами и байтами. io.FileIO даёт объектную обёртку, буферизованные потоки добавляют буфер, а текстовые — кодирование и обработку переводов строк.
Низкоуровневый вызов может прочитать или записать меньше запрошенного: это нужно учитывать, как и закрытие дескриптора. Обычный open() удобнее для большинства задач. mmap отображает файл в адресное пространство и полезен для некоторых способов произвольного доступа, но не отменяет I/O и ограничения памяти. Успешный write или flush не равен гарантированной записи на устойчивый носитель; требования долговечности рассматривают отдельно.
Источник: docs.python.org.