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