В Python 3.2 (и других версиях) документа для os.open говорится:
Эта функция предназначена для ввода/вывода низкого уровня. Для нормального использования используйте встроенную функцию open(), которая возвращает объект файла с методами read() и write() (и многие другие). Чтобы обернуть файловый дескриптор в файл-объект, используйте fdopen().
И для fdopen():
Вернуть объект открытого файла, связанный с файловым дескриптором fd. Это псевдоним open() и принимает те же аргументы. Единственное отличие состоит в том, что первый аргумент fdopen() всегда должен быть целым числом.
Этот комментарий в вопросе о разнице между io.open
и os.open
(эта разница совершенно мне понятна, я всегда использую io.open
, никогда os.open
) спрашивает: почему кто-то выбирает Python для ввода-вывода низкого уровня?, но на самом деле не получает ответа.
Мой вопрос очень похож на вопрос-комментарий: на Python используется прецедент низкоуровневого ввода-вывода через os.open
, os.fdopen
, os.close
, os.read
и т.д.? Раньше я думал, что это необходимо для деамонизации процесса, но Я уже не так уверен. Есть ли какая-либо задача, которая может быть выполнена только с использованием низкоуровневого ввода-вывода, а не с обертками более высокого уровня?