Документация Python неофициальный перевод

Объекты файловFile Objects

Встроенные файловые объекты Python полностью реализованы на основе поддержки FILE* из стандартной библиотеки C. Это деталь реализации, которая может измениться в будущих версиях Python. API PyFile_ являются обёрткой над модулем io.

PyFile_FromFd(int fd, char *name, char *mode, int buffering, char *encoding, char *newline, int closefd)

Создаёт новый PyFileObject из файлового дескриптора уже открытого файла fd. Аргументы name, encoding и newline могут быть NULL для использования значений по умолчанию; buffering может быть -1 для использования значения по умолчанию. Возвращает NULL в случае ошибки.

Предупреждение

Будьте осторожны при смешивании потоков и дескрипторов! Дополнительную информацию см. в документации GNU C Library.

int PyObject_AsFileDescriptor(PyObject *p)
Возвращает файловый дескриптор, связанный с p, в виде int. Если объект является целым числом, возвращается его значение. Если нет, вызывается метод fileno() объекта, если он существует; метод должен вернуть целое число, которое возвращается в качестве значения файлового дескриптора. Устанавливает исключение и возвращает -1 в случае неудачи.
PyObject* PyFile_GetLine(PyObject *p n)
Возвращаемое значение: новая ссылка.

Эта функция эквивалентна p.readline([n]) и читает одну строку из объекта p. p может быть файловым объектом или любым объектом, имеющим метод readline(). Если n равно 0, читается ровно одна строка, независимо от её длины. Если n больше 0, из файла будет прочитано не более n байт; может быть возвращена неполная строка. В обоих случаях возвращается пустая строка, если конец файла достигнут сразу. Однако если n меньше 0, читается одна строка независимо от длины, но если конец файла достигнут сразу, возбуждается EOFError.

int PyFile_WriteObject(PyObject *obj, PyObject *p, int flags)

Записывает объект obj в файловый объект p. Единственный поддерживаемый флаг для flagsPy_PRINT_RAW; если он задан, записывается str() объекта вместо repr(). Возвращает 0 при успехе или -1 при ошибке; будет установлено соответствующее исключение.

int PyFile_WriteString(const char *s, PyObject *p)
Записывает строку s в файловый объект p. Возвращает 0 при успехе или -1 при ошибке; будет установлено соответствующее исключение.